【发布时间】:2016-04-02 14:36:13
【问题描述】:
这是一个示例脚本:
#!/bin/csh
set cmd="echo hello\ndude"
eval $cmd
输出:
hellondude
期望的输出:
hello
dude
eval 语句没有正确处理换行符。
我怎样才能让这项工作如我所愿?
【问题讨论】:
-
\n在常规字符串中没有意义。 -
...坦率地说,如果它已经正确处理了换行符,它将回显
hello,然后给你一个命令-不-发现错误,除非您有一个名为dude的可执行文件。 -
另外,csh 是一个非常、非常设计不佳的外壳;有很多它根本不允许你做。有关密切相关的问题,请参阅stackoverflow.com/questions/9980537/…
-
@CharlesDuffy 我实际上希望它按照您的第二条评论所建议的那样执行。我正在尝试发出一个将挂起的命令,除非您在执行后按回车键。我想诱使 shell 认为命令已发出,然后按回车键。
-
如果我可以在命令末尾添加一个新行,理论上它应该可以工作,但
eval似乎不喜欢这样。
标签: newline eval line-breaks csh