Câu trả lời:
ssh user@remotehost "bash -s" < local_script.sh
-s
làm cho bash đọc từ đầu vào tiêu chuẩn.
Nếu bạn cần truyền đối số cho tập lệnh của mình:
ssh user@remotehost "bash -s" -- < local_script.sh "your_arg" "--aswitch" "avalue"
Lưu ý dấu gạch ngang kép --
(biểu thị sự kết thúc của các tùy chọn lệnh) và dấu ngoặc kép xung quanh các đối số.
-s
, và bạn chỉ cần bash
nếu bạn thực sự muốn sử dụng bash
. Thông thường bạn có thể chỉ đơn giảnssh user@remotehost < local_script.sh
câu trả lời phoibos là làm việc cho tôi.
ssh user@remotehost "bash -s" < local_script.sh
Nhưng bạn phải chắc chắn rằng tập lệnh của bạn gọi thoát một cách rõ ràng hoặc bạn sẽ vẫn đăng nhập vào máy chủ từ xa sau khi thực thi tập lệnh.
Nói ngắn gọn, đừng quên đặt nó ở cuối local_script.sh
:
exit 0