2

$iに基づいて変数を作成しようとしています

i=1
line="one two three four five six"

while [[ $i -lt 3 ]]; do 
set string$i=`echo $line | cut -d" " -f1-3`
echo $string$i
do_stuff_here
done

これを行うと、次の出力が得られます

1

期待される出力は

one two three

実際、$ String1をエコーすると、期待される出力が得られます...正しく保存されます。私は$string$ 1と呼んでいる方法を知っています...しかし、私はあらゆる種類の引用符/括弧を試しましたが、機能しません。誰かが私の変数を呼び出す方法を教えてもらえますか?

4

1 に答える 1

3

do_stuff_thereでiをインクリメントしない限り、whileループは停止しません。とにかく、これは期待しているものに近いはずです。

i=1
line="one two three four five six"

while [[ $i -lt 3 ]]; do
  eval string$i=\"`echo $line | cut -d" " -f1-3`\"
  eval echo \$string$i
  do_stuff_here
done
于 2012-09-19T22:17:08.583 に答える