Đó là những gì yes
lệnh dành cho. Nó xuất ra y
một dòng trên mỗi dòng vô thời hạn để có thể chuyển sang các lệnh hỏi có / không có câu hỏi.
yes | /opt/MNG/MNGVIEWHP/fe/uninstall
Đó là câu trả lời y
cho tất cả các câu hỏi. Để trả lời n
cho tất cả các câu hỏi, thay thế yes
bằng yes n
. Đối với hỗn hợp được xác định trước y
và n
, bạn có thể thay thế yes
bằng:
printf '%s\n' y n n y y n...
Hoặc chạy nó dưới dạng:
/opt/MNG/MNGVIEWHP/fe/uninstall << 'EOF'
y
n
n
y
y
n
EOF
Nếu bạn cần câu trả lời không có sẵn để đọc trước 10 giây, bạn sẽ làm:
(sleep 10; echo y; sleep 2; echo n;...) | /opt/MNG/MNGVIEWHP/fe/uninstall
Nhưng điều đó có lẽ không cần thiết, khi chúng ta viết y
lên đường ống, nó sẽ ở đó uninstall
để đọc nó bất cứ khi nào nó muốn đọc nó, không chắc bạn cần phải chờ nó sẵn sàng để đọc nó. Ngoại lệ sẽ là nếu uninstall
quyết định tuôn ra đầu vào trước khi đặt câu hỏi.
Tất cả những người giả sử uninstall
lệnh chỉ đọc mỗi câu trả lời là một dòng đầu vào từ đầu vào tiêu chuẩn của nó.
Đối với trường hợp phức tạp hơn, nơi mà các lệnh đọc các câu trả lời trực tiếp từ các thiết bị tty hoặc nơi bạn cần đến thức ăn chăn nuôi câu trả lời có điều kiện (ví dụ dựa trên những gì các kết quả đầu ra lệnh), đó là nơi mà bạn muốn sử dụng những thứ như expect
hay zsh
's zpty
.
Lưu ý rằng nhiều chương trình tương tác có thể vào một số chế độ không tương tác khi được thông qua một số tùy chọn. Bạn có thể muốn kiểm tra hướng dẫn của họ trước, trước khi dành quá nhiều nỗ lực để giải quyết vấn đề.
#! /bin/bash -
thay vì#!/usr/bin