我试图这样做:
run "echo -n 'foo' > bar.txt"
并且bar.txt的内容最终为:
-n foo \n
(\n
表示实际换行符)
我使用run运行其他命令,例如rm -rf
,据我所知,它运行正常。
答案 0 :(得分:1)
好像-n标志没有被shell解释为标志。如果从命令行执行echo -Y hi,输出将为-Y hi。
答案 1 :(得分:1)
我刚在man echo
中找到了这个:
某些shell可能提供内置的echo命令,该命令与此实用程序类似或相同。最值得注意的是,sh(1)中的内置回声不接受-n选项。请参阅builtin(1)手册页。
我的bash版本内置echo
,但似乎尊重-n
标志。看起来部署机器上的shell没有,在这种情况下,使用echo
二进制文件的完整路径可能会在此处执行您想要的操作:
run "/bin/echo -n 'foo' > bar.txt"