Thực sự có một cách đơn giản hơn nhiều để làm điều này. Đối với tính di động, đây là triển khai của tôi nhưng hãy thoải mái thao tác nó cho phù hợp với nhu cầu của bạn.
Nhập mật khẩu sudo của bạn làm tham số khi bắt đầu tập lệnh, ghi lại và lặp lại với mỗi lệnh sẽ nhắc mật khẩu sudo.
#!/bin/bash
PW=$1
echo $PW | ./playback_delete_data_patch.sh 09_delete_old_data_p.sql
./command_wo_sudo.sh <param>
echo $PW | ./other_command_requires_sudo.sh <param>
Bạn có thể thêm một dấu nhắc và chụp sau khi tập lệnh được khởi động như vậy:
echo "enter the sudo password, please"
read PW
Nhưng nếu ai đó theo dõi những gì chạy trên nút; có quyền truy cập vào các bản ghi được tạo bởi nó; hoặc chỉ nhìn qua một cách ngẫu nhiên khi bạn chạy thử nghiệm, điều đó có thể ảnh hưởng đến bảo mật.
Điều này cũng hoạt động với các lệnh / tập lệnh đang chạy yêu cầu có để tiếp tục:
echo $PW | yes | ./install.sh
Tiếng vang là để đáp lại lời nhắc, vì vậy bạn có thể sử dụng bất cứ thứ gì bạn cần, ở đó, nếu bạn đang chạy các tập lệnh khác có lời nhắc tiến trình, theo thứ tự liên tục. Hãy chắc chắn rằng bạn biết rằng thứ tự, mặc dù, hoặc những điều xấu có thể xảy ra.