上下文:我在我的 Mac 上运行了这个片段,并注意到字符串-n
散布在乱码输出中。答案是sh
在 Ubuntu 上理解-n
标志,而sh
在我的 Mac 上则不理解。
如您所见,python 将字符串发送到标准输出,"-n abc\n"
而不是预期的"abc"
.
通话是否os.system
无法分离-n
和abc
?zsh(倒数%
是 zsh 表示 EOF 的方式)和 bash 都会发生,但如果我没记错的话,python 调用不应该调用任何 shell(不是因为我读过任何这样说的东西,而是基于我的常识)(编辑:原来我完全错了,系统运行一个子shell)
看看 ruby 是如何做的:
还有一些测试:
看起来脚本已发送到,sh
但此时 shell 的环境变量仍然是zsh
. 说得通。我没有做任何清理环境的事情......也许sh
没有自动设置$SHELL
。