Câu trả lời:
Sử dụng osascript
. Ví dụ:
osascript -e 'tell app "Finder" to display dialog "Hello World"'
Thay thế “Finder” bằng bất kỳ ứng dụng nào bạn muốn. Lưu ý rằng nếu ứng dụng đó ở chế độ nền, hộp thoại cũng sẽ xuất hiện trong nền. Để luôn hiển thị ở nền trước, hãy sử dụng “Sự kiện hệ thống” làm ứng dụng:
osascript -e 'tell app "System Events" to display dialog "Hello World"'
Đọc thêm về Mac OS X Gợi ý .
Sử dụng lệnh này để kích hoạt thông báo trung tâm thông báo từ thiết bị đầu cuối.
osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"'
Nếu bạn đang sử dụng bất kỳ phiên bản Mac OS X nào có Trung tâm thông báo, bạn có thể sử dụng đá quý trình thông báo đầu cuối . Trước tiên hãy cài đặt nó (bạn có thể cần sudo
):
gem install terminal-notifier
và sau đó chỉ cần:
terminal-notifier -message "Hello, this is my message" -title "Message Title"
Xem thêm bài đăng hàng ngày OS X này .
brew install terminal-notifier
cũng hoạt động nếu bạn thích pha.
Thao tác này sẽ khôi phục tiêu điểm cho ứng dụng trước đó và thoát khỏi tập lệnh nếu câu trả lời trống.
a=$(osascript -e 'try
tell app "SystemUIServer"
set answer to text returned of (display dialog "" default answer "")
end
end
activate app (path to frontmost application as text)
answer' | tr '\r' ' ')
[[ -z "$a" ]] && exit
Nếu bạn yêu cầu Sự kiện Hệ thống hiển thị hộp thoại, sẽ có một khoảng thời gian nhỏ nếu nó không chạy trước đó.
Để có tài liệu về hộp thoại hiển thị, hãy mở từ điển Bổ sung Chuẩn trong AppleScript Editor hoặc xem Hướng dẫn Ngôn ngữ AppleScript .
Với AppleScript :
display notification "Notification text" with title "Notification Title" subtitle "Notification sub-title" sound name "Submarine"
Với terminal / bash và osascript
:
osascript -e 'display notification "Notification text" with title "Notification Title" subtitle "Notification sub-title" sound name "Submarine"'
Không lấy tiêu đề phụ cũng như âm thanh khó nghe.
Với AppleScript :
display alert "Alert title" message "Your message text line here."
Với terminal / bash và osascript
:
osascript -e 'display alert "Alert title" message "Your message text line here."'
Thêm một dòng trong bash để phát âm thanh sau dòng cảnh báo:
afplay /System/Library/Sounds/Hero.aiff
Thêm cùng một dòng trong AppleScript , cho phép shell script thực hiện công việc:
do shell script ("afplay /System/Library/Sounds/Hero.aiff")
Danh sách các âm thanh tích hợp sẵn của macOS để lựa chọn tại đây .
Được diễn giải từ một bài viết hữu ích về thông báo terminal và applecript .
Và 15 xu của tôi. Một lớp lót cho thiết bị đầu cuối mac, v.v. chỉ cần đặt MIN = thành bất kỳ thứ gì và một thông báo
MIN=15 && for i in $(seq $(($MIN*60)) -1 1); do echo "$i, "; sleep 1; done; echo -e "\n\nMac Finder should show a popup" afplay /System/Library/Sounds/Funk.aiff; osascript -e 'tell app "Finder" to display dialog "Look away. Rest your eyes"'
Một ví dụ bổ sung cho cảm hứng để kết hợp nhiều lệnh hơn; điều này cũng sẽ khiến máy mac chuyển sang chế độ chờ khi có tin nhắn :) sau đó cần đăng nhập sudo, một phép nhân như 60 * 2 trong hai giờ cũng được
sudo su
clear; echo "\n\nPreparing for a sleep when timers done \n"; MIN=60*2 && for i in $(seq $(($MIN*60)) -1 1); do printf "\r%02d:%02d:%02d" $((i/3600)) $(( (i/60)%60)) $((i%60)); sleep 1; done; echo "\n\n Time to sleep zzZZ"; afplay /System/Library/Sounds/Funk.aiff; osascript -e 'tell app "Finder" to display dialog "Time to sleep zzZZ"'; shutdown -h +1 -s
Một câu hỏi và câu trả lời mô phỏng có sẵn tại: /superuser/246353/how-to-make-the-terminal-do-a-pop-up-alert-in-osx
Tôi đã tạo một kịch bản để giải quyết vấn đề này ở đây . Bạn không cần bất kỳ phần mềm bổ sung nào cho việc này. Cài đặt:
brew install akashaggarwal7/tools/tsay
Cách sử dụng:
sleep 5; tsay
Hãy đóng góp!