作为输入,我有一个名为exp_multiple_512_0的文件,其中有11行包含数字。我正在使用zsh。
如果我做:
echo $(cut -f1 exp_multiple_512_0)
我有:
0 100 200 300 400 500 600 700 800 900 1000
但是,如果我通过以下方式更改行:
v=$(cut -f1 exp_multiple_512_0)
echo $v
我有:
0
100
200
300
400
500
600
700
800
900
1000
但是当我使用bash时,我仍然得到: 0 100 200 300 400 500 600 700 800 900 1000
我的问题是:
最好的答案是来自chepnet,他在评论中说:
默认情况下,zsh不会对参数扩展执行单词拆分,这意味着所有嵌入的换行符都会按原样处理,而不是被视为单词分隔的空格。setopt SH_WORD_SPLIT使zsh的行为类似于bash。问题在于echo $ v vs echo“ $ v”,而不是$(cut ...)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句