0
我有一個存儲SSH命令的變量,因爲我的腳本經常使用它。當存儲在一個變量中時,SSH命令選項會導致錯誤
SSH_CMD="ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o BatchMode=yes"
不過,我運行到哪裏了SSH命令對自己的罰款,但不工作的時候使用變量
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o BatchMode=yes $host exit 0
${SSH_CMD} $host exit 0
第一線的偉大工程的問題。第二行失敗,消息爲No such file or directory
。當我從$SSH_CMD
中刪除-o UserKnownHostsFile=/dev/null
時,錯誤消息是command not found
。如果我刪除其他兩個選項中的任何一個,則該消息不會更改,但當$SSH_CMD
只是"ssh"
時,它會起作用。
是什麼導致了這個問題?
在http://mywiki.wooledge.org/BashFAQ/050 –
充分解釋爲什麼它不工作其他腳本中的任何問題?有沒有其他的方式來存儲命令? – user2824889
BashFAQ 50列出了幾種更好的方法來存儲命令。實際上,這個特定的命令不包含任何shell元字符,所以它不應該遇到將命令存儲在變量中的任何常見問題。但是,我可以想到兩件可能導致您症狀的事情:您是否在雙引號中使用該命令(例如''$ {SSH_CMD}「$ host exit 0'),並且您確定這些命令是命令中的普通空格字符串(不是像不間斷的空格,看起來很正常,但不被shell識別)? –