将stdout / stderr重定向到bash脚本

问题描述

很抱歉,这是一个非常简单的问题,但是我在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 $1 argument for input

解决方法

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

int test = (int) curRoom.get("id");

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

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

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

<filter>

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

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