我下面的脚本没有从远程服务器提供正确的Java版本,而是打印源服务器的版本:
for i in 'cat serverlist.txt'
do
ssh $i `java -version 2>&1 >/dev/null | grep 'java version' | awk '{print $3}'|sed 's/"//g'`
done >>sample.txt
cat sample.txt
预期结果如下:
例如:1.8.181(每台服务器的版本都不同,应该打印出来)
答案 0 :(得分:0)
您不应该在远程命令中使用反引号-您可能正在寻找单引号:
ssh $i 'java -version 2>&1 >/dev/null | grep "version" | cut -d" " -f 3-'
答案 1 :(得分:0)
尝试以下操作后,我可以正确获得结果:
ssh $ server> sample.txt 2>&1
java -version 2>&1 >/dev/null | grep 'java version' | awk '{print $3}'|sed 's/"//g' >>s1.txt
退出;猫s1.txt