为什么使用变量使用zsh改变echo的输出?

马克西姆·切拉米(Maxime Cheramy)

作为输入,我有一个名为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

我的问题是:

  • 正确的行为应该是什么?是否保留收益?
  • 为什么使用中间变量可以保留回车符?
  • 我可以配置zsh使其表现得更像bash吗?
马克西姆·切拉米(Maxime Cheramy)

最好的答案是来自chepnet,他在评论中说:

默认情况下,zsh不会对参数扩展执行单词拆分,这意味着所有嵌入的换行符都会按原样处理,而不是被视为单词分隔的空格。setopt SH_WORD_SPLIT使zsh的行为类似于bash。问题在于echo $ v vs echo“ $ v”,而不是$(cut ...)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用echo命令输出变量值

为什么在使用ofstream时我的NSString变量输出“ 1”?

为什么使用变量会更改xsl中的输出?

在使用random和threadpool时,为什么输出顺序没有改变?

为什么在使用`log.Println`和`fmt.Println`时改变输出顺序?

为什么使用 for 循环会改变这个字典类的输出?

为什么我的计数输出会根据我是否使用 std::cout 而改变?

为什么我的 JavaScript 循环延迟(使用 setTimeout)不修改变量?

为什么当我使用指针更改变量的值时,该值仍然相同?

为什么不能在函数内使用kwargs更改变量?

为什么在使用while循环时我的外部变量没有改变?

为什么要使用zsh数组参数?

为什么Zsh不为变量分配值,而我必须使用eval?

为什么在“echo”和变量中使用 awk 命令时无法获得类似的结果

为什么不使用echo和print显示变量的'NULL'值,而是使用var_dump()函数显示变量的值?

如果我输入零而不是变量,为什么输出会改变?

为什么环境变量不改变?

为什么选择范围变量会改变?

在cmd中使用“ set var = text”命令后,为什么没有带有'echo%var%'的字符串输出?

为什么在Ruby中使用双铲不改变状态?

为什么使用 bootstrap 会改变 css 布局?

为什么使用嵌套特征改变PHP行为?

为什么类中名为节点的列表变量使用类的前一个实例的输出?

为什么使用Bash只读变量捕获输出而无法捕获返回代码$?

为什么NSString的输出有效,但无法使用实际变量?

使用Flask渲染模板时,为什么我的html代码没有输出变量的值?

为什么使用html和jquery变量附加div具有不同的输出?

为什么rm排除使用!在zsh中不起作用?

为什么nvim + zsh + git log -p%不使用更少?