Tôi cần phải chạy một kịch bản do đường ống thông qua bash
với wget
(chứ không phải chạy nó trực tiếp với bash).
$ wget -O - http://example.com/my-script.sh | bash
Nó không hoạt động vì tập lệnh của tôi có các read
câu lệnh trong đó. Vì một số lý do, những thứ này không hoạt động khi đường ống đến bash:
# Piping to bash works in general
$ echo 'hi'
hi
$ echo "echo 'hi'" | bash
hi
# `read` works directly
$ read -p "input: " var
input: <prompt>
# But not when piping - returns immediately
$ echo 'read -p "input: " var' | bash
$
Thay vì nhắc nhở input:
và yêu cầu một giá trị như bình thường, lệnh đọc sẽ được chuyển qua bash
.
Có ai biết làm thế nào tôi có thể đường ống một kịch bản với read
tới bash
?