2012-02-03 63 views
2

我试图将密码推送到我的git push,以便快速添加,提交和推送,但无法获取bash提示符来推送并输入密码。有人知道如何做到这一点?我敢肯定,这粥是简单....Bash脚本打印到程序提示

#!/bin/bash 

PWD='password' 
read MSG 

git add . 
git commit -m '"$MSG"' 

echo "$PWD" | git push | 
+0

你尝试过的git +的ssh私钥? – Aif 2012-02-03 22:19:30

+1

有关处理提示的另一个问题: http://stackoverflow.com/q/4780893/1175253 – Sam 2012-02-03 22:22:08

回答

2

如果您使用git通过SSH,你是不是能够在密码管,因为密码是从tty设备直接读取,而不是stdin(部分阻止做这样的事情!;))。如果你真的想自动输入密码,可以考虑使用可以控制tty的expectexpect使用TCL,但是如果你更倾向于使用TCL,那么至少还有perl和python模块。

IMO,更好的解决方案是设置基于密钥的身份验证。它比你想要的更容易和更安全。 http://www.debian-administration.org/articles/530有关于如何设置它的一些信息。

+0

谢谢,我想这样做是自动推我拉添加和这样的整个过程的原因。我会期待@sehe和ssh键,谢谢你们 – ehime 2012-02-03 23:45:50

1

你不能这样做。

相反,git推过ssh(你可能已经在使用了)并且配置ssh使用公钥认证。如果您选择使用一个私钥保护私钥,ssh-agent可以帮助提供密码。

见GitHub的教程一些指导:http://help.github.com/ssh-key-passphrases/