2

可変数の引数を持つfooというbashスクリプトがあり、最初のスクリプトは必須です。つまり、次のようになります。

foo a1 b2 b3 b4 ...

bashで$1が引数a1を取得することを理解していますが、残りのすべての引数を取得する方法はありますか?$@または$*は、a1を含むすべての引数を取得しているようです。

4

4 に答える 4

6

$@アレイをスライスします。

echo "${@:2}"
于 2012-09-25T23:19:52.027 に答える
2

そのためにshiftコマンドを使用できます。これにより$1が削除され、$1で始まる残りの引数にアクセスできます。

于 2012-09-25T23:17:55.533 に答える
0
#!/bin/sh

echo $*
shift
echo $*

shiftすべてのパラメータをシフトし、前の例を実行すると次のようになります。

$ test_shift.sh a b c d e
a b c d e
b c d e
于 2012-09-25T23:19:21.150 に答える
0

./foo.sh 1 2 3 4

#!/bin/bash
echo $1;
echo $2;
echo $3;
echo $4;

出力します:

1
2
3
4
于 2012-09-25T23:21:03.817 に答える