![对 tcsh 中的命令输出进行操作](https://linux22.com/image/498/%E5%AF%B9%20tcsh%20%E4%B8%AD%E7%9A%84%E5%91%BD%E4%BB%A4%E8%BE%93%E5%87%BA%E8%BF%9B%E8%A1%8C%E6%93%8D%E4%BD%9C.png)
我认为在 tcsh 中执行 subshell 命令的正确操作符是反引号,`
但是当我尝试对两个命令的结果进行比较时,我收到错误。当我首先将信息定向到文件并对两个文件进行比较时,我得到了我想要的,但我宁愿只使用一个命令,例如:
diff `jar -tvf org.jar` `jar -tvf new.jar`
tcsh 中正确的语法是什么?
答案1
您具有命令替换的正确语法。但你需要传递的diff
是两个文件名字,不是两个文件内容,这就是你想要通过的。 (您实际传递的内容实际上更复杂,但如果您编写了diff "`jar -tvf org.jar`" "`jar -tvf new.jar`"
,您将传递两个文件内容。)
我认为 tcsh 没有办法在不创建临时文件的情况下完成您想要做的事情。在 ksh、bash 或 zsh 中,您可以这样做:
diff <(jar -tvf org.jar) <(jar -tvf new.jar)