这个想法非常简单,使用expect脚本将git本地存储库推送到github
#! /usr/bin/expect -f
spawn git add -A
spawn git commit -m 'server auto update'
spawn git push
expect "Username for 'https://github.com':"
send <username\r>
expect "Password for 'https://xxxx@github.com':"
send <password\r>
我认为我的问题可能更准确:如何生成多个进程,因为我只使用git push测试脚本,它可以工作,所以我想我的代码中有多个spawn就是问题所在。
当前解决方案: 我编写了另一个bash脚本来自动为我添加和提交作业,在bash脚本的末尾我调用了expect脚本。
更好的解决方案(测试和工作)
exec git add -A
execute git commit -m ""
答案 0 :(得分:0)
而不是采用这种迂回方式, Generate an SSH key and register it with GitHub ,GitHub不会在您推送时询问您的密码(除非您使用密码短语生成密钥),而且&#&# 39;被认为比密码更安全(只要您的私钥实际上保密)。
有关详细信息,请参阅链接文章。
答案 1 :(得分:0)
此代码对我有用
spawn git push
set timeout 300
expect "Username*:" {
send "userName\n"
expect "Password" {
send "Pasword\n"
}
}
expect eof