问题描述
我正在尝试编写安装(bash)脚本,在该脚本中,我需要检查用户是否安装了Java 1.8。
这样做的明显方法是致电
javac -version | grep 1.8
,但出于某些奇怪的原因,javac(和java)的-version输出无法重定向-既不能通过|,>或>>进行重定向-在第一种情况下,第二个程序无法获取任何输入,在第二和第三个情况下,执行该命令后,输出文件为空。 我尝试在三台不同的计算机上进行检查,结果在每台计算机上都相同。
是什么原因造成的? 还有其他方法可以检查Java版本吗?
1楼
似乎输出已发送到STDERR
。
尝试这个:
javac -version 2>&1
这会将STDERR
的输出重定向到STDOUT
。
现在,您应该可以通过管道传递命令了。
如果仅要将其重定向到文件,只需将&1
替换为文件名,因此:
javac -version 2>out
2楼
您可以使用此工具简单地检查Java版本: :