2009-10-08 12 views

答えて

153

を生成し、引数を "食べる" に組み込みコマンドshiftを使用します。その後、子プロセスを呼び出して、残りのすべての引数を含めるために引数"[email protected]"を渡します。引用符は、引数リストの展開が適切に引用されるため、保持する必要があります。

+18

"$ @"は$ *より安全です – pixelbeat

+4

違いは何ですか? –

+1

@pixelbeat:ありがとう、良いキャッチ。私は編集しました。 @ŁukaszLew:マニュアルのリンク先ページを参照してください。 :)基本的に、それはより良い引用を処理します。 – unwind

18

bashはシフトコマンドを使用し shifttest.sh:

#!/bin/bash 
echo $1 
shift 
echo $1 $2 

shifttest.sh 1 2 3

1 
2 3 
7

bashのは、あなたがこのように渡す/処理するパラメータを選択することができますので、(Subsets and substringsを参照)のサブセットパラメータをサポートしています。

開いて新しいファイルをして、それを編集:vimのr.sh

echo "params only 2 : ${@:2:1}" 
echo "params 2 and 3 : ${@:2:2}" 
echo "params all from 2: ${@:2:99}" 

の実行には、 :

chmod u+x r.sh 
./r.sh 1 2 3 4 5 6 7 8 9 10 

結果は次のとおりです。

params only 2 : 2 
params 2 and 3 : 2 3 
params all from 2: 2 3 4 5 6 7 8 9 10 
関連する問題