将 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
如果这是一个非常简单的问题,我深表歉意,但我在 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