我认为在 tcsh 中执行 subshell 命令的正确运算符是反引号,`但是当我尝试对两个命令的结果进行比较时,出现错误。当我首先将信息定向到文件并对这两个文件进行比较时,我得到的正是我想要的,但我宁愿只使用一个命令,例如:
diff `jar -tvf org.jar` `jar -tvf new.jar`
Run Code Online (Sandbox Code Playgroud)
tcsh 中的正确语法是什么?
您有正确的命令替换语法。但是您需要传递的diff是两个文件名,而不是两个文件内容,这正是您要传递的内容。(您实际传递的内容实际上更复杂,但是如果您编写了diff "`jar -tvf org.jar`" "`jar -tvf new.jar`",您将传递两个文件内容。)
我认为 tcsh 没有办法在不创建临时文件的情况下做您想做的事情。在 ksh、bash 或 zsh 中,您可以这样做:
diff <(jar -tvf org.jar) <(jar -tvf new.jar)
Run Code Online (Sandbox Code Playgroud)