それはおそらく不完全な質問でしょう。しかし、コマンドライン[bash script]から3つの引数を取得しています。次に、これらをforループで使用しようとしています。
for i in {$1..$2}
do action1
done
これは動作しないようですが、$1
は"0"
および$2
は2
印刷する{0..2}' and calls
action1`は1回だけです。さまざまな例を参照しましたが、これは正しい使用方法のようです。ここで修正する必要があるものを誰か教えてもらえますか?
前もって感謝します。
どうですか:
for i in $(eval echo {$1..$2}); do echo $i; done
${@:3}
または${@:3:8}
を使用して入力をスライスし、ループすることができます
たとえば、3から始まる引数を出力するには
for i in ${@:3} ; do echo $i; done
または、3から始まる8つの引数を出力します(つまり、引数3〜10)。
for i in ${@:3:8} ; do echo $i; done
$ @変数を使用しますか?
for i in $@
do
echo $i
done
1番目と2番目の引数を使用する場合は、
for i in $1 $2
$ 1と$ 2が整数で、範囲を作成する場合は、C forループ構文(bash)を使用します
for ((i=$1;i<=$2;i++))
do
...
done
同様の問題がありました。問題は、中括弧「{}」内の$ 1の参照解除にあると思います。次の選択肢は私のために働いた..
#!/bin/bash
for ((i=$1;i<=$2;i++))
do
...
done
お役に立てば幸いです。
#/bin/bash
for i
do
echo Value: $i
done
これにより、スクリプトファイルに指定されたすべての引数がループされます。ループ変数iの後に「do」などを指定しないでください。