所以我的脚本中有一行基本上是:
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,并且尝试在第一个 echo 之后插入这些内容,但仍然出现这个奇怪的空白行!
最佳答案
您的命令(简化):
ssh user@ipaddress echo "2>&1" && echo 'Available' || echo 'Not, available'
第一个 echo
在远程计算机上运行,"2>&1"
将该 echo 命令的 stderr 重定向到 stdout。不带参数的 echo
会输出换行符。然后,该换行符将作为 ssh 命令的标准输出返回,并显示在本地 shell 中。如果 ssh 命令失败(即不可用),则远程 echo 命令永远不会运行,并且换行符也不会出现。
关于linux - 输出中出现奇怪的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35335153/