可変数の引数を持つfooというbashスクリプトがあり、最初のスクリプトは必須です。つまり、次のようになります。
foo a1 b2 b3 b4 ...
bashで$1が引数a1を取得することを理解していますが、残りのすべての引数を取得する方法はありますか?$@または$*は、a1を含むすべての引数を取得しているようです。
可変数の引数を持つfooというbashスクリプトがあり、最初のスクリプトは必須です。つまり、次のようになります。
foo a1 b2 b3 b4 ...
bashで$1が引数a1を取得することを理解していますが、残りのすべての引数を取得する方法はありますか?$@または$*は、a1を含むすべての引数を取得しているようです。
$@
アレイをスライスします。
echo "${@:2}"
そのためにshiftコマンドを使用できます。これにより$1が削除され、$1で始まる残りの引数にアクセスできます。
#!/bin/sh
echo $*
shift
echo $*
shift
すべてのパラメータをシフトし、前の例を実行すると次のようになります。
$ test_shift.sh a b c d e
a b c d e
b c d e
./foo.sh 1 2 3 4
#!/bin/bash
echo $1;
echo $2;
echo $3;
echo $4;
出力します:
1
2
3
4