小白求解答:shell 的for循环,这两个有什么不同,输出的结果都不一样

第一段代码

str="this is shell";
for i in $str
do
    echo $i;
done

输出的结果是:

this
is 
shell

第二段代码

for i in "this is shell"
do
    echo $i
done    

输出的结果是:

this is shell

2个回答

第一段,用变量,for循环相当于 for i in this is shell 相当于i有3个参数this is shell
第二段用引号,是一个整体,i就只有一个值了

第一个循环是一个引用, 空格会被解释为IFS字符, for in遍历时会在空格处拆分
第二个由于循环体最外层是双引号,空格会被解释为一般的字符,所以不会进行拆分

第二个循环如果用第一个的写法是 for i in "$str"

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐