将命令的输出放入字符串中

gol*_*lls 5 command-line bash scripts

我想将 bash 命令的输出存储到 bash 脚本中的字符串中。重要的部分如下:

#!/bin/bash
player_status="$(playerctl -l)"
Run Code Online (Sandbox Code Playgroud)

在终端上运行时(不使用 bash 脚本)命令的输出是“未找到玩家”。当我运行 bash 脚本时(请注意,没有回显),它会向终端输出“未找到玩家”。我希望它不把它放在终端中,而是放在变量中。

Mox*_*Mox 6

听起来您的命令正在生成标准错误而不是标准输出的输出。2>&1尝试在 shell 命令上使用修饰符。

#!/bin/bash
player_status="$(playerctl -l 2>&1)"
Run Code Online (Sandbox Code Playgroud)

修饰符的意思是“将标准错误发送到标准输出”。