Tôi đang cố chạy một lệnh trên SSH như thế này trong tài liệu ở đây:
ssh example.com <<END
sudo /etc/init.d/apache2 reload
END
Mà thường hoạt động trừ khi tôi đang cố chạy một cái gì đó cần đầu vào, chẳng hạn như mật khẩu cho sudo. Trong trường hợp đó, tôi nhận được thông báo sau:
sudo: no tty present and no askpass program specified
Tôi biết tôi có thể sử dụng -t
cờ trên SSH để cấp phát một giả như thế này:
ssh -t example.com "sudo /etc/init.d/apache2 reload"
Và nó sẽ hoạt động, nhưng khi tôi thử điều tương tự với tài liệu ở đây, nó không hoạt động và tôi sẽ gặp lỗi tương tự về việc không có mặt nào:
ssh -t example.com <<END
sudo /etc/init.d/apache2 reload
END
Bất cứ ý tưởng làm thế nào tôi có thể làm cho công việc này?
Ngoài ra, trong trường hợp bạn đang tự hỏi tại sao tôi muốn nó hoạt động với tài liệu ở đây thay vì chỉ truyền nó trên cùng một dòng, thì đó là do các lệnh đầu vào (có thể có một vài) đến từ tệp cấu hình được đọc bởi tập lệnh và tôi đã nghe nói rằng nó tránh được những rắc rối trong việc thoát các lệnh cho dấu ngoặc kép, dấu ngoặc kép, v.v.