Bash でオプションの入力引数を取る
引数を渡さずに、または引数を渡さずに、両方で実行できる動的関数を作成する必要がある場合があります。 これを行うには、関数を呼び出すときに引数が渡されなかった場合にデフォルトの引数を使用できるように、これらの引数にいくつかのデフォルト値を設定する必要があります。
この記事では、関数のオプションの入力引数を作成する方法を示します。 また、トピックをより簡単にするために、いくつかの例と説明も見ていきます。
Bash でオプションの入力引数を取る
以下の例では、デフォルト値を出力します。 デフォルト値を含む 4つの変数を宣言しました。
この例のコードは次のようになります。
VAR1=${1:-foo}
VAR2=${2:-bar}
VAR3=${3:-1}
VAR4=${4:-$(date)}
echo "$VAR1"
echo "$VAR2"
echo "$VAR3"
echo "$VAR4"
コードの実行後、以下の出力が得られます。
foo
bar
1
Sat Aug 13 14:59:31 +06 2022
次に、高度な例を見てみましょう。 以下に示す例では、0、1、および 2つのパラメーターで動作し、関数内にデフォルト値を設定できる関数を作成しました。
ここで、この例のコードは次のようになります。
FindSum()
{
VAR1=${1:-40}
VAR2=${2:-50}
if [ $# -lt 1 ];
then
echo "The provided parameters are: $VAR1, $VAR2."
elif [ $# -lt 2 ];
then
echo
echo "The provided parameters is: $VAR2."
else
echo
echo "No parameters provided"
VAR1=$1
VAR2=$2
fi
SUM=$((VAR1+VAR2))
echo "The sum of $VAR1 and $VAR2 is $SUM"
}
FindSum
FindSum 40
FindSum 70 30
コードを部分的に説明しましょう。
まず、VAR1=${1:-40}
と VAR2=${2:-50}
行を使用して、変数のデフォルト値を設定します。 その後、これらの変数の値が与えられているかどうかを確認しました。
値がそれらを提供しない場合は、デフォルト値を使用する必要があります。 それ以外の場合は、ユーザーが指定した値を使用してください。
最後に、SUM=$((VAR1+VAR2))
行を使用して合計演算を実行し、結果を出力しました。 ここでは、FindSum
で引数なしで関数を呼び出しました。
ここでも、FindSum 40
という行を使用して、1つの引数で関数を呼び出しました。 そして、FindSum 70 30
という行を使用して、2つの引数で関数を呼び出しました。
The provided parameters are: 40, 50.
The sum of 40 and 50 is 90
The provided parameters is: 50.
The sum of 40 and 50 is 90
No parameters provided
The sum of 70 and 30 is 100
この記事で使用するコードはすべて Bash で記述されています。 Linux シェル環境でのみ動作します。
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedIn