bash:无法将变量设置为实心字符串

bash:无法将变量设置为实心字符串

我无法使用整个命令字符串设置变量,如下所示:

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”循环以你不想要的方式破坏了它。

相关内容