Bash
如果命令輸出失敗,如何將命令輸出儲存為變數,同時出錯?
我正在嘗試基於命令變數執行 if 語句,例如:
ssh_location=$(which ssh)
我的問題是,我只想在系統上存在它時才儲存它,這樣我就可以對二進製文件進行進一步處理,否則我想回顯一個錯誤字元串。這就是我正在嘗試但沒有運氣的方法:
if ["$ssh_location"] ; then echo "it exists" else echo "does not exist" fi
我不斷收到此錯誤消息:
./test.sh: line 6: [/usr/local/bin/ssh]: No such file or directory does not exist
(它肯定存在)。
您沒有檢查文件是否存在,而是嘗試使用
["$ssh_location"]
不存在的路徑執行命令。檢查文件是否存在的語法是:
if [ -f "$ssh_location" ]
您缺少括號內的空格(是的,它們是必需的)和
-f
. 如果沒有,-f
您將評估ssh
命令的返回碼。