以下是一个示例脚本:
#!/bin/csh
set cmd="echo hello\ndude"
eval $cmd
输出:
hellondude
期望的输出:
hello
dude
eval
语句不能正确处理换行符。
我怎样才能让这项工作像我想要的那样?
答案 0 :(得分:0)
在你的评论中你说.. “我正在尝试发出一个将挂起的命令,除非你在执行后按Enter键。”
基于这个以及我可以从原始帖子中收集的内容我认为你只需要一个分号而不是一个新行,第二个命令可以从stdin中读取一个字符,如下所示......
set cmd='echo hello; set a = $<'
eval $cmd
这将执行第一个命令“echo hello”,然后等待键盘输入,或者如你所提到的那样“挂起”。