破折号脚本,为命令发送是
dash script, send yes for a command
我想使用破折号调用带有脚本的命令。这是我的代码:
#!/bin/sh
ip='172.45.0.219'
cmd1='yes yes'
cmd2="./ssh foo@$ip"
eval $cmd1 | $cmd2
当我 运行 我的脚本时,这是我的输出:
Pseudo-terminal will not be allocated because stdin is not a terminal.
The authenticity of host '172.45.0.219 (172.45.0.219)' can't be established.
ECDSA key fingerprint is SHA256:PpEShWXU3zQhkyAsy4Zd1Jddb2lW0ULautIdPMr8yxA.
Are you sure you want to continue connecting (yes/no)?
正在等待 'yes/no'。
我希望此脚本自动获得 'yes'。
我尝试了一些像这样的其他方法:
eval echo yes | $cmd2
并得到相同的结果。
感谢您的帮助。
这种情况下,必须对用户进行认证,解决方法是:
#!/bin/sh
ip='172.45.0.219'
cmd="ssh-keyscan -H $ip >> ~/.ssh/known_hosts"
eval $cmd
然而,这并不是这个问题的真正答案。
我想使用破折号调用带有脚本的命令。这是我的代码:
#!/bin/sh
ip='172.45.0.219'
cmd1='yes yes'
cmd2="./ssh foo@$ip"
eval $cmd1 | $cmd2
当我 运行 我的脚本时,这是我的输出:
Pseudo-terminal will not be allocated because stdin is not a terminal.
The authenticity of host '172.45.0.219 (172.45.0.219)' can't be established.
ECDSA key fingerprint is SHA256:PpEShWXU3zQhkyAsy4Zd1Jddb2lW0ULautIdPMr8yxA.
Are you sure you want to continue connecting (yes/no)?
正在等待 'yes/no'。 我希望此脚本自动获得 'yes'。
我尝试了一些像这样的其他方法:
eval echo yes | $cmd2
并得到相同的结果。 感谢您的帮助。
这种情况下,必须对用户进行认证,解决方法是:
#!/bin/sh
ip='172.45.0.219'
cmd="ssh-keyscan -H $ip >> ~/.ssh/known_hosts"
eval $cmd
然而,这并不是这个问题的真正答案。