【问题标题】:bash - output command to variable not working [duplicate]bash - 输出命令到变量不起作用[重复]
【发布时间】:2021-08-06 16:17:06
【问题描述】:

由于某种原因,这在我的机器上不起作用。我有一个测试脚本test.sh 包含

#! /usr/bin/env ksh
JV=$(javac -version)
echo "JV1: $JV eol"
echo "JV2: ${JV} eol"

输出

JV1:  eol
JV2:  eol

如果我在终端上运行命令

>: javac -version

我明白了

>: javac 1.8.0_222

环境:

操作系统:CentOS Linux 7.7.1908 版

重击:4.2.46(2)


我查看了this post,似乎对我不起作用。有什么建议吗?

【问题讨论】:

  • 它按预期工作。
  • 如果您将javac -version 放入脚本本身,您会看到什么?

标签: linux bash


【解决方案1】:

java -version 正在写入标准错误,而不是标准输出(这是 $(...) 捕获的内容。您需要重定向输出。

JV=$(javac -version 2>&1)

【讨论】:

  • 哇.. 不知道,现在可以使用