将 stdout / stderr 重定向到 bash 脚本

Redirect stdout / stderr to bash script

如果这是一个非常简单的问题,我深表歉意,但我在 google 上找不到任何关于“将 stdout 和 stderr 重定向到 bash 脚本”和“重定向 bash 脚本”的内容输出到另一个 bash 脚本。

我知道这会将 stdout 和 stderr 重定向到 log.txt,但我不确定如何将它重定向到 bash 脚本。

java -jar build/libs/bot-kt-1.1.3.jar > log.txt 2>&1

理想情况下是像上面那样表现的东西

java -jar build/libs/bot-kt-1.1.3.jar > "./script.sh" 2>&1 # script.sh uses the  argument for input

您可以为此使用命令替换:

 ./script.sh $(java -jar build/libs/bot-kt-1.1.3.jar 2>&1)

除了 perreal 的回答之外,如果您的脚本可以更改为从 stdin 读取而不是期望参数,您还可以使用管道:

java -jar build/libs/bot-kt-1.1.3.jar  2>&1 | ./script.sh

您可以使用 xargs 将数据从管道移动到参数中:

java -jar build/libs/bot-kt-1.1.3.jar 2>&1 | xargs ./script.sh

将所有内容作为单个参数传递:

java -jar build/libs/bot-kt-1.1.3.jar 2>&1 | xargs --null ./script.sh