我正在使用 bash。我有一个包含Java 程序命令行参数的文件F,我需要存储Java 程序的两个输出,即标准输出的输出和退出值。存储标准输出通过
cat F | xargs java program > Output
但是 xargs 不允许访问 Java 程序的退出代码。好吧,我拆分它,运行程序两次,一次用于标准输出,一次用于退出代码 --- 但是获取退出代码并正确运行它似乎是不可能的。一个人可能会尝试
java program $(cat F)
但如果 F 包含例如“”,即程序的一个命令行参数,它是一个空格,则这不起作用。问题是参数 $(cat F) 的扩展。
现在我没有办法解决这个问题?我不想要“$(cat F)”,因为我希望 $(cat F) 扩展为许多字符串 --- 但我不希望进一步扩展这些字符串。
另一方面,如果有更好的 xargs,可以访问原始退出值,那将解决问题,但我不知道这一点。