use*_*145 2 shell shell-script quoting
我无法使用整个命令字符串设置变量,如下所示:
A="/bin/ps wwwaux"
for a in $A
do
echo "$a"
done
Run Code Online (Sandbox Code Playgroud)
它以某种方式分配数组而不是实心字符串。
我的环境:
GNU/Linux, GNU bash, version 3.2.51(1)-release (x86_64-suse-linux-gnu)
Run Code Online (Sandbox Code Playgroud)
for 循环需要一个列表:
for a in $A; do
echo "$a"
done
Run Code Online (Sandbox Code Playgroud)
扩展为:
for a in /bin/ps wwwaux; do
echo "$a"
done
Run Code Online (Sandbox Code Playgroud)
一个接一个地打印。循环运行两次,因为有两个参数。输出将是:
/bin/ps
wwwaux
Run Code Online (Sandbox Code Playgroud)
改用引号:
for a in "$A"; do
echo "$a"
done
Run Code Online (Sandbox Code Playgroud)
这将扩展为:
for a in "/bin/ps wwwaux"; do
echo "$a"
done
Run Code Online (Sandbox Code Playgroud)
这将只循环一次,因为它是一个参数。这是输出:
/bin/ps wwwaux
Run Code Online (Sandbox Code Playgroud)
for f in "$A"
do
echo $f
done
Run Code Online (Sandbox Code Playgroud)
您的作业已经在做您想做的事情——正是“for”循环以您不想要的方式破坏了它。