2

bashでコマンドライン引数を読み込もうとしていますが、10列目で読み込めません。これが私のサンプルスクリプトです:

#-------------------------------------------------------
#!/bin/bash
an=$2  mn=$4  dy=$6  der=$8  new=$10  sec=(${12} ${13})
echo $an $mn  $dy   $der  $new  $sec 
#--------------------------------------------------------

上記のスクリプト「test.sh」を次のように実行しました

./test.sh -yr cat  -mn Jan  -dy  tuesday  -der tt  -new car -sec 001 001

出力は次のとおりです。

cat Jan tuesday tt -yr0 001

しかし、変数$ new($ 10)の場合、答えはそうあるべきcar でしたが、私は-yr0

なぜですか?

4

2 に答える 2

4

new=$10$1追加された (つまり、'yr') を提供してい0ます。いくつかの中かっこが必要です:${10}

于 2012-10-17T13:34:47.363 に答える
3

修正は次のとおりです。

#!/bin/bash
an=$2  mn=$4  dy=$6  der=$8  new=${10}  sec="${12} ${13}"
echo $an $mn  $dy   $der  $new  $sec 
  1. 「$1」に0を追加した$10の代わりに、${10}を使用します。
  2. 配列を使用するつもりでない限り、括弧を使用する代わりにsec ="..."
于 2012-10-17T13:39:45.203 に答える