如何在csh脚本“eval”语句中使用换行符

时间:2015-12-28 18:24:23

标签: newline eval line-breaks csh

以下是一个示例脚本:

#!/bin/csh
set cmd="echo hello\ndude"
eval $cmd

输出:

hellondude

期望的输出:

hello
dude

eval语句不能正确处理换行符。

我怎样才能让这项工作像我想要的那样?

1 个答案:

答案 0 :(得分:0)

在你的评论中你说.. “我正在尝试发出一个将挂起的命令,除非你在执行后按Enter键。”

基于这个以及我可以从原始帖子中收集的内容我认为你只需要一个分号而不是一个新行,第二个命令可以从stdin中读取一个字符,如下所示......

set cmd='echo hello; set a = $<'
eval $cmd

这将执行第一个命令“echo hello”,然后等待键盘输入,或者如你所提到的那样“挂起”。