Bash 関数でパラメータを渡す方法を検索しようとしていますが、表示されるのは常にコマンドラインからパラメータを渡す方法です。
スクリプト内でパラメータを渡したいのですが、次のことを試しました:
myBackupFunction("..", "...", "xx")
function myBackupFunction($directory, $options, $rootPassword) {
...
}
しかし、構文が正しくありません。関数にパラメータを渡すにはどうすればいいでしょうか?
ベストアンサー1
関数を宣言する方法は一般的に 2 つあります。私は 2 番目の方法を好みます。
function function_name {
command...
}
または
function_name () {
command...
}
引数付きの関数を呼び出すには:
function_name "$arg1" "$arg2"
関数は渡された引数を位置(名前ではなく)で参照します。つまり$1
、、$2
などです。$0
はスクリプト自体の名前です。
例:
function_name () {
echo "Parameter #1 is $1"
}
また、関数は宣言された後に呼び出す必要があります。
#!/usr/bin/env sh
foo 1 # this will fail because foo has not been declared yet.
foo() {
echo "Parameter #1 is $1"
}
foo 2 # this will work.
出力:
./myScript.sh: line 2: foo: command not found
Parameter #1 is 2