Tôi có một đoạn script mà tôi đang cố gắng chuyển từ Linux sang Darwin / OS X. Phiên bản Linux hiện tại phụ thuộc vào watch
lệnh, dường như không được cài đặt trên Darwin / OS X theo mặc định. Thay thế bản địa là gì?
Tôi có một đoạn script mà tôi đang cố gắng chuyển từ Linux sang Darwin / OS X. Phiên bản Linux hiện tại phụ thuộc vào watch
lệnh, dường như không được cài đặt trên Darwin / OS X theo mặc định. Thay thế bản địa là gì?
Câu trả lời:
Không có sự thay thế bản địa. Bạn phải có được watch
từ việc sử dụng Homebrew ( brew install watch
) hoặc MacPorts ( port install watch
) nếu bạn yêu cầu thực thi thực tế.
Tuy nhiên, bạn có thể mô phỏng chức năng của watch
. Điều đó có thể được thực hiện trong một bash while tiêu chuẩn ( từ Stack Overflow của Daniel Pittman ):
Bạn có thể mô phỏng các chức năng cơ bản với vòng lặp shell:
while :; do clear; your_command; sleep 2; done
Điều đó sẽ lặp lại mãi mãi, xóa màn hình, chạy lệnh của bạn và đợi hai giây - cách cơ bản thực hiện your_command.
Bạn có thể tiến thêm một bước này và tạo tập lệnh watch.sh có thể chấp nhận your_command và ngủ_duration làm tham số:
#!/bin/bash # usage: watch.sh <your_command> <sleep_duration> while :; do clear date $1 sleep $2 done