2017-05-24 6 views
0

bash変数を2つの単語セグメントの集合に割り当てる必要があります。 bash変数は文字列のリストに似ています。各文字列は二重引用符で囲まれた別々の単語です)。私はループ変数が各繰り返しの2つの単語セグメントの1つに割り当てられるように、この変数をforループ内で使用しようとしています。ここで2つの単語列のリストになるbash変数の割り当て

は私のコードです:

#!/bin/bash 
variable='"var one" "var two" "var three"' 
for i in $variable 
do 
    echo $i 
done 

私は希望の出力は次のようになります。

var one 
var two 
var three 

しかし

"var 
one" 
"var 
two" 
"var 
three" 
で、私は、現時点では取得しています
+2

アレイを使用しないのはなぜですか? – Inian

+2

文字列のリストを文字列に入れます。なぜ文字列のリストを*リスト*に入れるのではなく、むしろ配列ですか? –

+1

関連:[BashFAQ#50](http://mywiki.wooledge.org/BashFAQ/050) - コマンドを格納するのに使用できないのと同じ理由で、文字列をリストの格納に安全に使用することはできません。 –

答えて

2

シングル3の定義します要素配列ではなく、31文字の文字列:

variable=(
    "var one" 
    "var two" 
    "var three" 
) 
for i in "${variable[@]}"; do 
    echo "$i" 
done 

文字列を入力として受け入れる必要があり、データ内の引用符を使用して配列に解析する必要がある場合は、その他の質問が直接オンポイントになります。例えばBash doesn't parse quotes when converting a string to arguments

関連する問題