我的问题基于这里的线程:如何在文本文件中将特定行作为命令运行?
我该如何跑步一组线从文本文件?
到目前为止,这是我尝试过的:
Input file:
1 #!/usr/bin/csh -v
2
3 date
4
5 echo "abc"
6
7 set cell="bananas"
8
9 set cmd = "echo apples \
10 oranges \
11 graped $cell"
12
13 echo $cmd
14
sed -n '5,13 p' /tmp/1 | sh
给出:
abc
(blank line)
为什么这不执行其余的行?或者正如我怀疑的那样,它是否运行它但没有给出任何输出,因为这些命令是在新的中运行的?每次都 sh(ell) 而不是在单个 shell 会话中?
谢谢!
答案1
您的测试失败,因为您使用的是不同的 shell,sh
而不是脚本预期的 shell csh
。
sed -n 5,13p /tmp/1 | csh
将产生您期望的结果。