Bash
Bash 腳本:循環文件
我有一個文件,裡面有幾行:
/snapshot/200 /snapshot/201 /snapshot/202
現在我正在嘗試使用帶有 while IFS 循環的每一行來對它們執行某些操作。
while IFS=' ' read -r test || [ -n "${test}" ]; do if ssh root@$TARGET "[ ! -d $test ]" then echo "${test}" fi done < $filelist
這裡的問題我只得到一個結果並且它沒有循環遍歷整個文件?if 語句應該是正確的,因為沒有具有這些名稱的目錄。
但是,如果我刪除了整個 if 部分並僅使用
echo "${test}"
循環有效。
ssh
從循環繼承標準輸入流while
並將讀取您的整個$filelist
文件,除了由read
.要停止
ssh
這樣做,請使用ssh -n
或ssh ... </dev/null
。
ssh
以這種方式工作以允許您通過簡單的重定向或管道將數據傳遞到遠端系統,如ssh remote 'cat >remotefile' <localfile