Đưa ra một while
vòng lặp một điều kiện boolean như sau:
#!/bin/bash
while true; do
do_something && wait
done
Điều này sẽ thực hiện lặp đi lặp lại cho đến khi bash nhận được tín hiệu chấm dứt quá trình. Thường ở dạng ctrl+c
.
Bạn cũng có thể sử dụng watch
lệnh để chạy một kịch bản nhiều lần. Ví dụ, một đồng hồ đơn giản trong thiết bị đầu cuối bash của bạn sử dụng watch
có thể trông như sau:
$ watch -t -n1 date +%T
Các -t
tùy chọn nói watch
không hiển thị tiêu đề của quá trình đó đang chạy. Điều này cung cấp cho bạn một đầu ra sạch sẽ chỉ của lệnh đang được lặp lại. Các -n1
tùy chọn cho xem để lặp lại mỗi n
giây. Trong trường hợp này, -n1
sẽ là khoảng thời gian 1
thứ hai. Sau đó date +%T
lệnh hiển thị thời gian tại thời điểm hoàn thành lệnh. Thực hiện lệnh này sẽ cung cấp cho bạn một đồng hồ hoạt động trong thiết bị đầu cuối của bạn.
Và sau đó, một phương thức nữa không có trong bất kỳ câu trả lời nào khác sẽ là một cuộc gọi hàm vô hạn.
do_something() { do_something }; do_something && wait
Điều này về cơ bản giống như while
vòng lặp boolean chỉ sử dụng các lệnh gọi hàm đệ quy.
(chỉnh sửa) Để giữ tài nguyên cho máy của bạn, tôi đã thêm vào && wait
để mỗi lần chạy một quy trình, các vòng lặp sẽ "chờ" cho đến khi quá trình đó kết thúc với trạng thái thoát 0 trước lần lặp tiếp theo. Điều này rất hữu ích trong một kịch bản shell tương tác.