問題
有些情況下,部分腳本命令需要獲取管理員權限了執行:
sudo gem install fastlane
在一般情況下,需要等待你輸入管理員密碼以繼續執行。如果你需要在 Jenkins 等需要自動化執行的腳本中時不可行的,此時就需要不輸入密碼來執行腳本。
解決方案
1、全局配置
參見免密碼使用sudo和su。
2、將密碼以參數形式追加到腳本
- 使用管道
echo [password] | sudo -S gem install fastlane
- 使用文本塊輸入重定向
sudo -S gem install fastlane << EOF
[password]
EOF
說明
1、-S 參數
-S 參數是 sudo 命令的可選參數,用以接收標準的密碼輸入
-S, --stdin read password from standard input
2、 << EOF 命令
在shell腳本中,通常將EOF與 << 結合使用,表示后續的輸入作為子命令或子Shell的輸入,直到遇到EOF為止,再返回到主Shell。
在上面的場景中,就是將‘password’當做命令的輸入。