1行で変数に2つの出力が必要でした。シェルスクリプト#!/bin/sh
ループを使用していますが、やりたいことはfor
の繰り返しで、次のようなものを出力します。
variable1_case1
variable2_case2
そして私はすでに試しました
variable$i_case$i.
for i in 1 2; do
echo variable${i}_case$i
done
あなたがしたいことをする必要があります。 1 2
を必要な数字または文字列に置き換えます。 $i
の値によっては、echo variable"$i"_case"$i"
のように引用する必要がある場合があります。
スクリプトの問題は、変数名をテキスト文字列内に直接埋め込み、変数名の一部になる可能性のある他の文字が後に続くようにすることだと思います。これらには、英数字だけでなく下線も含まれます。
そのため、スペースまたは非変数名の文字で他の変数と区別されないように変数を文字列に埋め込む場合は、代わりに中括弧で変数名表記を使用できます。
$ i=42
$ echo "variable${i}_case${i}."
variable42_case42.
たぶん私はスティックの間違った端を手に入れましたが、このようなものが欲しいですか:
#!/bin/sh
while read a b; do
echo variable:${a}_case:${b}
done
次の出力が作成されます。
/tmp/test.sh < /tmp/dat1
variable:1_case:2
variable:3_case:4
データファイルdat1には以下が含まれます。
1 2
3 4