Bash関数にパラメータを渡す 質問する

Bash関数にパラメータを渡す 質問する

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

参考資料: 上級 Bash スクリプト ガイド

おすすめ記事