0

私は bash スクリプトを書いていて、それぞれ 1 つの数字しかない 3 行のファイルを読み込んでいます。各行を新しい変数に設定する必要があります。これを行う方法がよくわかりませんが、これが私が今していることです:

    VAR1=0
    VAR2=0
    VAR3=0

    while read line
    do
            VAR1=$line
            VAR2=$line
            VAR3=$line
    done <$FILE

私が得ている結果は、3 つの変数すべてのファイルの最後の行です。どんな助けでも素晴らしいです。

4

4 に答える 4

2

信じられないかもしれませんが、これを使用してこれを行うことができますprintf

i=0
while read line; do
  ((i++))
  varname="VAR$i"
  printf -v $varname "$line"
done < FILE

ソース:別の文字列の値から文字列変数名を作成する

于 2013-10-05T20:28:06.123 に答える
0

Nosidの答えはあなたが望むことをしますが、本当に配列が必要な場合は、次のようにすることができます:

# populate ARRAY
ARRAY=()
while read LINE
do
    ARRAY+=("$LINE")
done < test

# subscripting
echo ${ARRAY[0]}
echo ${ARRAY[1]}
echo ${ARRAY[2]}

# looping
for LINE in "${ARRAY[@]}"
do
    echo "$LINE"
done
于 2013-10-05T20:17:19.103 に答える