シェルスクリプト内のプログラムにコマンドライン引数を渡す

シェルスクリプト内のプログラムにコマンドライン引数を渡す

./script.sh arg1 [arg2 arg3 ...]、、...コマンドラインパラメータはarg1、、、...で取得できますが、arg2パラメータの数は次のとおりです。$1$2いいえ安定した。

arg2シェルスクリプトから次から始めて、プログラムに引数を渡したいと思います。

#/bin/bash
...
/path/to/a/program [I want to pass arg2 arg3 ... to the program]
...

1つ以上のパラメータがある可能性がありますが、どうすればよいですか?

ベストアンサー1

一般的なアプローチは、コピーを保存することです。アルギニン1"$1")引数を1ビット移動するので、リスト全体を次のように参照できます"$@"

#!/bin/sh
arg1="$1"
shift 1
/path/to/a/program "$@"

Bashは間違いなくいくつかの配列サポートを提供しますが、質問ではこれを要求しません。

もしアルギニン1オプションなので、次のように確認できます。

if [ $# != 0 ]
then
    arg1="$1"
    shift 1
fi

おすすめ記事