Tôi đang cố gắng viết một tập lệnh kéo phiên bản mới nhất của phần mềm của tôi từ một repo git và cập nhật các tập tin cấu hình. Khi kéo từ repo, tôi phải nhập mật khẩu. Tôi muốn kịch bản tự động hóa mọi thứ, vì vậy tôi cần nó để tự động điền nó vào cho tôi. Tôi tìm thấy trang web này giải thích cách sử dụng "mong đợi" để tìm lời nhắc mật khẩu và gửi mật khẩu. Tôi không thể làm cho nó hoạt động được. Đây là tập lệnh của tôi:sử dụng kỳ vọng trong bash script
#!/usr/bin/expect -f
set password [lrange $argv 0 0]
set timeout -1
clear
echo "Updating Source..."
cd sourcedest
git pull -f origin master
match_max 100000
# Look for passwod prompt
expect "*?assword:*"
# Send password aka $password
send -- "$password\r"
# send blank line (\r) to make sure we get back to gui
send -- "\r"
expect eof
git checkout -f master
cp Config/database.php.bak Config/database.php
cp webroot/index.php.bak webroot/index.php
cp webroot/js/config.js.bak webroot/js/config.js
Tôi đang làm gì sai? đây là trang web tôi nhận được từ: http://bash.cyberciti.biz/security/expect-ssh-login-script/
Giả sử bạn quên đẻ trứng. – bdecaf
Tôi không muốn phần đó. Tôi đang chạy cái này bên trong máy cục bộ của mình. – LordZardeck
Không git, cd và cp không có lệnh mong đợi hợp lệ. Bạn cần phải sinh ra một vỏ cho nó. – bdecaf