获取命令输出到变量(不适用于管道,..)

时间:2019-06-17 09:31:19

标签: bash error-handling

我正在尝试获取命令的输出,以便可以查看它是否是错误或由于某种原因而不想将输出存储在变量或读取管道中。

我尝试了多种方法,但我确实无法获得该输出

run() {
        runOutput=$(timeout 2 mcrcon -c -H $HOST -P $PORT -p $PASSWORD "$1")
        exit_status=$?
        if [[ $exit_status -eq 124 ]]; then
                #status off, no other data
                exit 1
        fi
}


所以基本上,如果您将if与runOuput放在一起,它应该进入if并停止程序,但是目前它只是不执行任何操作,并且该命令之后会显示(这里我将其存储在runoutput中,这是一个屏幕)

要测试的代码:

timeout 2 mcrcon -H $HOST -p $PORT -P $PASSWORD "/players" | read test
echo "test $test testhja"

结果:https://i.imgur.com/IsG3zJW.png

我只想将该命令的输出转换为变量

(我使用此程序执行rcon https://github.com/IIPoliII/mcrcon

1 个答案:

答案 0 :(得分:2)

我用过:

mcrcon -H localhost -p minecraftrcon -w 4 'tellraw @a {"text":"'${your_variable}'","color":"green"}'