GNU/Linux >> Linux の 問題 >  >> Linux

unix/linux コマンド ラインで関数を定義する (例:BASH)

Ask Ubuntu での同様の質問に対する私の回答を引用します:

<ブロック引用>

bash の関数 基本的に複合コマンド (またはコードブロック) と名付けられています。 man bash から :

Compound Commands
   A compound command is one of the following:
   ...
   { list; }
          list  is simply executed in the current shell environment.  list
          must be terminated with a newline or semicolon.  This  is  known
          as  a  group  command. 

...
Shell Function Definitions
   A shell function is an object that is called like a simple command  and
   executes  a  compound  command with a new set of positional parameters.
   ... [C]ommand is usually a list of commands between { and },  but
   may  be  any command listed under Compound Commands above.

理由はありません。構文だけです。

wc -l の後にセミコロンを入れてみてください :

numresults(){ ls "$1"/RealignerTargetCreator | wc -l; }

ls | wc -l を使用しないでください ファイル名に改行が含まれていると、間違った結果になる可能性があるためです。代わりにこの関数を使用できます:

numresults() { find "$1" -mindepth 1 -printf '.' | wc -c; }

Linux
  1. 5 Linux Bash コマンドラインで利用可能な標準補完

  2. UNIX / Linux :最後のコマンドを繰り返す bash history コマンドの例

  3. 6 Linux の Bash シェル コマンド ライン チェーン演算子

  1. LinuxでBASHコマンドライン履歴をクリアする方法

  2. Linux bashでphpスクリプト(php関数)を実行する

  3. コマンドラインのみ UNIX/Linux OS

  1. Linuxの履歴コマンド(Bashの履歴)

  2. BashスクリプトにUnix/Linuxユーザーを追加する方法は?

  3. Linux でコマンド ライン シェル関数を使用する方法