linux - 输出中出现奇怪的行

标签 linux bash

所以我的脚本中有一行基本上是:

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/

相关文章:

linux - 用于查找两个文件之间出现次数增加的 Shell 脚本

linux - Bash 脚本第 106 行 : syntax error: unexpected end of file

linux - ftp 传输后 mp3 和 wav 文件播放断断续续/太快

android - 如何将/data/数据文件复制到/sdcard?

linux - 循环遍历多个文件夹以执行命令,然后写入另一个目录中的文件

linux - 仅当两个值都分配给 bash 中的两个变量时,如何连接两个变量?

bash - 将变量从 Bash 传递到 psql

c - 在linux中将.a文件与.so共享库文件绑定(bind)

Linux:获取 sctp 连接的套接字选项时出错

linux - 如何格式化 ifconfig 的输出