linux - bash - 将命令输出到变量不起作用
问题描述
由于某种原因,这在我的机器上不起作用。我有一个测试脚本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)
我看了一下这个帖子,似乎对我不起作用。有什么建议么?
解决方案
java -version
正在写入标准错误,而不是标准输出(这是$(...)
捕获的内容。您需要重定向输出。
JV=$(javac -version 2>&1)
推荐阅读
- css - 如何在 laravel 5.6 项目中添加很棒的字体?
- git - 如何解决冲突以便从我的分叉存储库创建对主存储库的拉取请求?
- javascript - 如何从 JavaScript 调整 CSS 中的值?
- javascript - 获取 Ghost 博客中浏览次数最多的帖子
- python - Flask/Python 修改 JSON 输出
- python - 在没有请求模块的情况下登录 python 3.6 中的网站
- python - 在 Scala flink 中根据另一个 DataSet 过滤一个 DataSet
- flutter - 在 onTap ( Flutter ListItem ) 中执行函数后如何更改图标的颜色
- git - VS2017r 中的 GIT - 如何从团队资源管理器 git Repo Sync 中恢复,但由于提示落后于远程提示而失败
- angular - rxjs - observable 什么都不发出(没有完成?)