Một cách tốt hơn để xóa màn hình từ trong tập lệnh ...
Nếu bạn đang sử dụng ứng dụng OSX Terminal (như OP đã nêu), cách tiếp cận tốt hơn (nhờ https://apple.stackexchange.com/a/113168 ) chỉ là:
clear && printf '\e[3J'
hoặc chính xác hơn (mẹo đội mũ đến https://stackoverflow.com/users/4834046/qiuyi ):
printf '\33c\e[3J'
giúp xóa bộ đệm cuộn cũng như màn hình. Ngoài ra còn có các tùy chọn khác, xem https://apple.stackexchange.com/a/113168 để biết thêm.
câu trả lời gốc
Câu trả lời AppleScript được đưa ra trong chuỗi này hoạt động, NHƯNG nó có tác dụng phụ khó chịu khi xóa BẤT K window cửa sổ đầu cuối nào đang hoạt động. Điều này thật đáng ngạc nhiên nếu bạn đang chạy tập lệnh trong một cửa sổ và cố gắng hoàn thành công việc ở một cửa sổ khác!
Bạn tránh điều này bằng cách tinh chỉnh AppleScript để chỉ xóa màn hình nếu nó ở phía trước bằng cách thực hiện việc này (lấy từ https://apple.stackexchange.com/a/31887 ):
osascript -e 'if application "Terminal" is frontmost then tell application "System Events" to keystroke "k" using command down'
... nhưng như khi nó không phải là cửa sổ hiện tại, đầu ra sẽ xếp chồng lên nhau cho đến khi nó trở thành hiện tại, điều này có thể không phải là điều bạn muốn.