Tôi xin lỗi trước - Tôi không hiểu đầy đủ ý tưởng đằng sau những gì tôi yêu cầu đủ để hiểu tại sao nó không hoạt động (Tôi không biết những gì tôi cần phải học). Trước tiên, tôi đã tìm kiếm sự trao đổi xếp chồng để tìm câu trả lời - tôi đã tìm thấy một số thông tin có vẻ liên quan, nhưng không giải thích được các khái niệm đủ rõ ràng để tôi hiểu cách xây dựng một giải pháp làm việc. Tôi đã được cọ rửa google nhưng không tìm thấy bất kỳ thông tin nào mô tả chính xác những gì đang diễn ra theo cách mà tôi hiểu. Bất kỳ hướng nào đến các khái niệm nền có thể giúp tôi hiểu những gì đang xảy ra sẽ được đánh giá cao.Sử dụng đọc -p trong tập lệnh bash được thực thi từ ống
Có thể nhận dữ liệu nhập của người dùng trong tập lệnh bash được thực thi từ đường ống không?
Ví dụ:
wget -q -O - http://myscript.sh | bash
Và trong kịch bản:
read -p "Do some action (y/n): " __response
if [[ "$__response" =~ ^[Yy]$ ]]; then
echo "Performing some action ..."
fi
Theo tôi được biết, điều này không làm việc vì đọc những nỗ lực để đọc các đầu vào từ stdin và kịch bản bash hiện đang "thực hiện thông qua đường ống đó" (tôi chắc chắn có một cách chính xác hơn về kỹ thuật để mô tả những gì đang xảy ra, nhưng tôi không biết làm thế nào).
Tôi tìm thấy một giải pháp mà đề nghị sử dụng:
read -t 1 __response </dev/tty
Tuy nhiên, điều này không làm việc, hoặc.
Mọi ánh sáng đều xuất hiện trên các khái niệm tôi cần hiểu để thực hiện công việc này hoặc giải thích lý do tại sao nó không hoạt động hoặc giải pháp sẽ được đánh giá cao.
Cảm ơn bạn. Hoạt động hoàn hảo. – nfarrar