所以我的脚本中有一行基本上是:
echo "********************"
echo "AVAILABILITY"
echo "********************"
ssh -p22 -q -o "BatchMode=yes" -o "ConnectTimeout=5" user@ipaddress echo "2>&1" && echo 'Available' || echo 'Not, available'
||的后半部分输出正常
前:
********************
AVAILABILITY
********************
Not, available
然而,上半部分输出了这个恼人的空白行:
********************
AVAILABILITY
********************
Available
我已经尝试将整条线路连接到sed和tail,并且我已经尝试在第一个回声之后插入这些并且仍然显示这个奇怪的空白行!
答案 0 :(得分:1)
你的命令(简化):
ssh user@ipaddress echo "2>&1" && echo 'Available' || echo 'Not, available'
第一个echo
在远程计算机上运行,"2>&1"
将该echo命令的stderr重定向到stdout。没有参数的echo
会输出换行符。然后,此换行符将作为ssh
命令的stdout返回,并显示在本地shell中。如果ssh
命令失败(即不可用),则远程echo
命令永远不会运行,并且不会出现换行符。
答案 1 :(得分:0)
我可以使用echo -n“$(2>& 1)”
来抑制新行感谢Josh Jolly帮助我理解为什么“空白”线出现了。