对 tcsh 中的命令输出进行操作

对 tcsh 中的命令输出进行操作

我认为在 tcsh 中执行 subshel​​l 命令的正确操作符是反引号,`但是当我尝试对两个命令的结果进行比较时,我收到错误。当我首先将信息定向到文件并对两个文件进行比较时,我得到了我想要的,但我宁愿只使用一个命令,例如:

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)

相关内容