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 watchlệ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 watchlệ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 watchtừ 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