2016-02-11 18 views
-1

所以我在我的腳本中的線基本上是:行奇怪

echo "********************" 
echo "AVAILABILITY" 
echo "********************" 
ssh -p22 -q -o "BatchMode=yes" -o "ConnectTimeout=5" [email protected] echo "2>&1" && echo 'Available' || echo 'Not, available' 

下半年||輸出細

例如:

******************** 
AVAILABILITY 
******************** 
Not, available 

上半年但是輸出這惱人的空白行:

******************** 
AVAILABILITY 
******************** 

Available 

我已經試過管道全行sed和尾巴,和我嘗試在第一個回聲後插入這些,並且這個奇怪的空白行顯示出來!

回答

1

你的命令(簡化):

ssh [email protected] echo "2>&1" && echo 'Available' || echo 'Not, available' 

第一echo在遠程機器上運行,並"2>&1"重定向該echo命令到stdout的標準錯誤。不帶參數的echo輸出換行符。該換行然後作爲ssh命令的標準輸出返回並出現在本地shell中。如果ssh命令失敗(即不可用),則遠程echo命令不會運行,並且不顯示換行符。

+0

所以給回聲某種參數會自動否定新行?還是有一個我可以給它的特定參數。 – EcHoOfInSaNiTy

+0

或者只是不要在遠程機器上運行'echo'。如果你不想輸出,可以使用'/ bin/true'或者(如果你必須的話)'cat/dev/null'或者其他東西。 –

0

我能夠用echo -n「$(2> & 1)」

感謝約什 - 喬利幫助我理解爲什麼「空白」行被顯示出來,以抑制新的生產線。