0

私はbashでこれを達成したい:

for i in {1..2}
do
for j in {1..2}
do
echo $i $j >> tmp.txt
done
done

cat tmp.txt
1 1
1 2
2 1
2 2

ただし、引用符で囲まれたecho変数を使用して次のようにします。

cmd="
for i in {1..2};
do for j in {1..2};
do echo \$i "\$j" '\$i' "'\$j'" \$i "'$j'" \'$i\' \"$j\" >> tmp.txt;
done;
done
"
eval $cmd

見積もりが正しくないようです。私が望むことを達成することは可能ですか?

ありがとうございました!

4

1 に答える 1

3

一重引用符を使用し、各の前に必ずセミコロンを付けてくださいdone

cmd='for i in {1..2}; do
for j in {1..2}; do
echo $i $j >> tmp.txt;
done;
done'
eval $cmd
于 2012-11-07T21:16:11.227 に答える