Почему бы вам просто не использовать что-то более безопасное, чем пароль, и упростить свою жизнь?
Ключ ssh без пароля будет значительно более безопасным и не будет запрашивать вообще.
Если он должен быть на 100% самодостаточным, подумайте над тем, чтобы скрипт выдал SSH-ключ, используйте его один раз, а затем удалите. (Это должно оставить вашу ситуацию с безопасностью без изменений: пароль в сценарии, что приемлемо для вас).
# Output SSH key for no-password login. (Could use mktemp instead)
cat > /tmp/ssh_key.$$ <<EOT
-----BEGIN RSA PRIVATE KEY-----
blahblahblah
-----END RSA PRIVATE KEY-----
EOT
# Make a SSH wrapper to do the right thing
cat > /tmp/git_ssh.$$ <<EOT
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i /tmp/ssh_key.$$ "$@"
EOT
chmod +x /tmp/git_ssh.$$
export GIT_SSH=/tmp/git_ssh.$$
# Done!
git clone user@host:path/to/repo
# Cleanup
rm -f /tmp/git_ssh.$$ /tmp/ssh_key.$$
Да, скрипт выглядит громоздким, но (по модулю ошибок) он самодостаточен и очень полезен для автоматизации.