Bash 变量赋值没有发生

Bash 变量赋值没有发生,bash,ubuntu,Bash,Ubuntu,我有这样的问题 root@B056HAP2865372:~# str="$(consul-template --version)" consul-template v0.18.1 (9c62737) root@B056HAP2865372:~# echo $str root@B056HAP2865372:~# consul-template --version | cut -d" " -f 2 consul-template v0.18.1 (9c62737) 因此命令$

我有这样的问题

  root@B056HAP2865372:~# str="$(consul-template --version)"
  consul-template v0.18.1 (9c62737)
  root@B056HAP2865372:~# echo $str

  root@B056HAP2865372:~# consul-template --version | cut -d" " -f 2
  consul-template v0.18.1 (9c62737)
因此命令
$consultemplate--version
可以工作,但我不能将其分配给任何变量,也不能将其分配给其他命令

如果有帮助,这台机器是一个
LXC 2.9.3
容器。 这是一个弹壳。
我不知道我做错了什么。

您的命令正在
stderr
上写入。您可以将stderr重定向到stdout,然后分配给变量:

str="$(consul-template --version 2>&1)"