2012-02-03 64 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/