我无法使用整个命令字符串设置变量,如下所示:
A="/bin/ps wwwaux"
for a in $A
do
echo "$a"
done
它以某种方式分配数组而不是实心字符串。
我的环境:
GNU/Linux, GNU bash, version 3.2.51(1)-release (x86_64-suse-linux-gnu)
答案1
for 循环需要一个列表:
for a in $A; do
echo "$a"
done
扩展到:
for a in /bin/ps wwwaux; do
echo "$a"
done
哪个会依次打印。循环运行两次,因为有二论据。输出将是:
/bin/ps
wwwaux
使用引号代替:
for a in "$A"; do
echo "$a"
done
这将扩展到:
for a in "/bin/ps wwwaux"; do
echo "$a"
done
它将循环一次,因为它是一争论。这就是输出:
/bin/ps wwwaux
答案2
for f in "$A"
do
echo $f
done
你的作业已经在做你想做的事情了——“for”循环以你不想要的方式破坏了它。