3 つ以上のパラメーターを受け取ることになっているシェル スクリプト (tcsh) を作成しています。最初の 3 つはプログラムに渡され、残りは別のプログラムに渡されます。全体として、スクリプトは次のようになります。
./first_program $1 $2 $3
./second program [fourth or more]
問題は、後者を行う方法がわからないことです-3番目以降のすべてのパラメーターを渡します。
3 つ以上のパラメーターを受け取ることになっているシェル スクリプト (tcsh) を作成しています。最初の 3 つはプログラムに渡され、残りは別のプログラムに渡されます。全体として、スクリプトは次のようになります。
./first_program $1 $2 $3
./second program [fourth or more]
問題は、後者を行う方法がわからないことです-3番目以降のすべてのパラメーターを渡します。
私はあなたにコマンドを提示しますshift
:
shift
[変数]引数なし で、のメンバーを
破棄 して左にシフトします。argv[1]
argv
例:
$ cat /tmp/tcsh.sh
#!/bin/tcsh
echo "$1" "$2" "$3"
shift
shift
shift
echo "$*"
$ /tmp/tcsh.sh 1 2 3 4 5 6
1 2 3
4 5 6
shift
次のように利用できます。
./first_program $1 $2 $3
shift # shift 3 times to remove the first 3 parameters.
shift
shift
./second program $*
$*
残りのパラメータが含まれます。
また、ゼロ以外であることを確認しshift
て確認することにより、を実行する前にエラーチェックを実行する必要があります。$#argv
または、スクリプトのスターでの値をチェックして、$#argv
少なくともであることを確認することもできます3
。