2015-09-15 245 views
1

我試圖查詢遠程服務器上的日誌文件的內容,但是,我似乎無法讓它工作。Bash:ssh輸入while while循環

#!/bin/bash 
while read line; do 
     echo "Do stuff to the file, line by line" 
done < (ssh -n [email protected] "cat /path/to/file") 

我在第一個圓括號處得到語法錯誤。如果刪除括號,則在「-n」標誌處出現語法錯誤。

一切從shell正常工作,所以我假設這裏有一些行爲,我不正確理解。

謝謝!

回答

4

您需要另一個<進行過程替換。

#!/bin/bash 
while read line; do 
     echo "Do stuff to the file, line by line" 
done < <(ssh -n [email protected] "cat /path/to/file") 

第一個<指定輸入重定向。 <(...)結構是進程替換,它與命令替換相似,但將封閉命令的輸出視爲文件而不是字符串。