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

コマンドラインでスクリプトから関数を実行するにはどうすればよいですか?

スクリプトが関数を定義するだけで他に何もしない場合は、最初に source を使用して現在のシェルのコンテキスト内でスクリプトを実行できます または . コマンドを実行してから、単に関数を呼び出します。 help source を参照 詳細については、


次のコマンドは、最初に関数をコンテキストに登録してから呼び出します:

. ./myScript.sh && function_name

まあ、他の答えは正しいですが、確かに何か他のことを行うことができます.bashスクリプトにアクセスできる場合は、それを変更して、最後に特別なパラメータ "[email protected]" を配置するだけです。 -これは、指定したコマンドラインの引数に展開され、「単独」であるため、シェルはそれらを逐語的に呼び出そうとします。ここで、関数名を最初の引数として指定できます。例:

$ cat test.sh
testA() {
  echo "TEST A $1";
}

testB() {
  echo "TEST B $2";
}

"[email protected]"


$ bash test.sh
$ bash test.sh testA
TEST A 
$ bash test.sh testA arg1 arg2
TEST A arg1
$ bash test.sh testB arg1 arg2
TEST B arg2

洗練のために、最初にコマンドが存在し、関数であることを確認できます:

# Check if the function exists (bash specific)
if declare -f "$1" > /dev/null
then
  # call arguments verbatim
  "[email protected]"
else
  # Show a helpful error
  echo "'$1' is not a known function name" >&2
  exit 1
fi

Linux
  1. コマンドラインから自動マウントする方法は?

  2. コマンドラインから PHP コードを実行するにはどうすればよいですか?

  3. ls コマンドからディレクトリを除外するにはどうすればよいですか

  1. コマンドラインから特定のサイズのファイルを作成するにはどうすればよいですか?

  2. Linux コマンドラインからフォルダーをコピーするにはどうすればよいですか?

  3. 起動後にコマンドを実行するにはどうすればよいですか?

  1. コマンドラインからOom-killerをテストする方法は?

  2. コマンドラインからdmesgに書き込むにはどうすればよいですか?

  3. コマンドラインからnagiosチェックを手動で実行するにはどうすればよいですか?