我有一个存储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
消息。当我从-o UserKnownHostsFile=/dev/null
中删除$SSH_CMD
时,错误消息为command not found
。如果我删除其他两个选项中的任何一个,则邮件不会更改,但当$SSH_CMD
只是"ssh"
时,它会有效。
是什么导致了这个问题?
答案 0 :(得分:0)
那么为什么它在其他脚本中没有任何问题呢?
多次回答。尝试使用bash别名或bash函数:
alias my_ssh='ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o BatchMode=yes'
my_ssh $host exit 0
或者在ssh_config
中使用~/.ssh/config
。
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
BatchMode yes
然后你不需要像这样的任何harakiri,只需使用
ssh $host exit 1