【发布时间】:2016-01-20 17:58:50
【问题描述】:
我想使用脚本从 git 下载源代码。
以下git 命令会导致提示:
git clone ssh://url.com/repo.git git_test3
Cloning into 'git_test3'...
The authenticity of host 'url.com (1.1.1.1)' can't be established.
ECDSA key fingerprint is .
Are you sure you want to continue connecting (yes/no)?
为了让脚本自动输入“是”,我开发了以下脚本:
#!/bin/sh
git_clone() {
git clone ssh://url.com/repo.git test <<EOF > /dev/null
yes
EOF
}
git_clone
但它不起作用。该脚本始终会导致提示(yes/no)。
我错过了什么?
【问题讨论】:
-
您可以使用
expect脚本做您想做的事。见expect.sourceforge.net -
试试 yes 命令,它可能会起作用。试试这个,
yes yes | git clone ssh://url.com/repo.git test,参考stackoverflow.com/questions/8416887/… -
@ishaan 这只是向
git的标准输入提供重复文本的另一种方式,这是 OP 已经在做的事情。问题是不是git要求响应,而是ssh,而ssh不是从标准输入读取,而是直接从终端读取。 -
啊,今天学到了新东西。之前已经回答了类似的问题,也许OP可以在那里看看并找到问题的解决方案,参考:serverfault.com/questions/447028/…