Bashの関数にパラメータを渡す
Bashの関数でパラメータを渡す方法を検索しようとしているのですが、出てくるのはいつもコマンドラインからパラメータを渡す方法です。
私はスクリプト内でパラメータを渡したいのです。私は試してみました。
myBackupFunction("..", "...", "xx")
function myBackupFunction($directory, $options, $rootPassword) {
...
}
しかし、構文が正しくありません。関数にパラメータを渡すにはどうしたらよいでしょうか?
893
3
関数を宣言する代表的な方法は2つあります。私は2番目の方法が好きです。
または
引数を指定して関数を呼び出すには
関数は、渡された引数を(名前ではなく)位置で参照し、$1、$2などとします。$0 はスクリプト自体の名前です。
例
また、関数を宣言した後に、関数を呼び出す必要があります。
アウトプット:。
参考:Advanced Bash-Scripting Guideを参照してください。
高レベルのプログラミング言語(C/C++/Java/PHP/Python/Perl ...)の知識があれば、bashの関数はそれらの言語と同じように動作するはずだと素人には思えるでしょう。代わりに、bash関数はシェルコマンドのように動作し、シェルコマンド(ls -l)にオプションを渡すのと同じように、引数が渡されることを期待します。事実上、bashの関数の引数は位置パラメーターとして扱われます(
$1, $2...$9, ${10}, ${11}
など)。これは、getopts
の仕組みを考えれば当然のことです。bashでは、関数を呼び出すのに括弧は必要ありません。(注: 私はたまたま現在Open Solarisに取り組んでいます。)
括弧やカンマを外します。
とすると、関数は次のようになります。