Tôi đang chạy Ubuntu Linux. Giả sử có một chương trình được gọi là myprogram
. Chương trình này nhắc người dùng nhập liệu; cụ thể, người dùng phải nhập một số nguyên khi được nhắc và nhấn Enter. Tôi muốn tự động hóa quá trình này bằng cách sử dụng tập lệnh bash. Cụ thể, tôi muốn thực hiện myprogram
, giả sử, 100 lần (sử dụng bộ đếm i
đi từ 1
đến 100
). Trên mỗi lần thực hiện myprogram
, tôi muốn nhập giá trị hiện tại i
khi được nhắc.
(Nhân tiện, myprogram
có các tùy chọn / công tắc -options
, tất cả chúng sẽ không đổi và do đó được chỉ định trong tập lệnh bash.)
Một bộ xương không hoàn chỉnh của tập lệnh bash này có thể là:
#!/bin/bash
for i in {1..100}
do
myprogram -options
done
Bây giờ tôi muốn sửa đổi mã trên để giá trị hiện tại i
được nhập khi được chương trình nhắc. Cách tốt nhất để làm việc này là gì?
Trang web của phần mềm tôi đang sử dụng gợi ý sử dụng <<EOF
ở cuối myprogram -options
dòng. Tôi nghĩ rằng điều này cho bash xem xét "phần cuối của tệp" để sử dụng đầu vào. Nhưng nếu tôi không muốn đặt đầu vào ở cuối tập tin thì sao? Điều gì sẽ xảy ra nếu tôi muốn đặt nó ngay sau khi <<
hoặc <
?
Lý do là mọi thứ sẽ trở nên phức tạp hơn. Ví dụ, tôi có thể giới thiệu một bộ đếm số nguyên j
thay đổi theo một số cách phi tuyến tính, không tuần tự. Sau đó tôi muốn để nuôi giá trị hiện tại của j
để myprogram
trên mỗi lần lặp, nhưng giá trị của j
thể thay đổi giữa các cuộc gọi đến myprogram -options
và kết thúc của tập tin EOF
.
Bạn có đề nghị nào không?