ฉันต้องการให้โปรแกรมของฉันแสดงการแจ้งเตือนสังเกตสิ่งที่แสดงข้อความที่กำหนดเองของฉัน วิธีนี้ทำได้อย่างไร? นอกจากนี้เป็นไปได้หรือไม่ที่จะทำให้ปุ่มหลายปุ่มตั้งค่าตัวแปร?
คล้ายกับแบทช์:
echo msgbox""<a.vbs&a.vbs
ฉันต้องการให้โปรแกรมของฉันแสดงการแจ้งเตือนสังเกตสิ่งที่แสดงข้อความที่กำหนดเองของฉัน วิธีนี้ทำได้อย่างไร? นอกจากนี้เป็นไปได้หรือไม่ที่จะทำให้ปุ่มหลายปุ่มตั้งค่าตัวแปร?
คล้ายกับแบทช์:
echo msgbox""<a.vbs&a.vbs
คำตอบ:
ใช้osascript
. ตัวอย่างเช่น:
osascript -e 'tell app "Finder" to display dialog "Hello World"'
การเปลี่ยน“ Finder” ด้วยแอพอะไรก็ได้ที่คุณต้องการ โปรดทราบว่าแอปนั้นเป็นพื้นหลังหรือไม่กล่องโต้ตอบจะปรากฏในพื้นหลังด้วย หากต้องการแสดงเบื้องหน้าเสมอให้ใช้ "เหตุการณ์ของระบบ" เป็นแอป:
osascript -e 'tell app "System Events" to display dialog "Hello World"'
อ่านเพิ่มเติมเกี่ยวกับMac OS X คำแนะนำ
ใช้คำสั่งนี้เพื่อทริกเกอร์การแจ้งเตือนของศูนย์การแจ้งเตือนจากเทอร์มินัล
osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"'
หากคุณใช้ Mac OS X เวอร์ชันใดก็ตามที่มีศูนย์การแจ้งเตือนคุณสามารถใช้อัญมณีการแจ้งเตือนเทอร์มินัลได้ ก่อนติดตั้ง (คุณอาจต้องsudo
):
gem install terminal-notifier
จากนั้นก็:
terminal-notifier -message "Hello, this is my message" -title "Message Title"
ดูโพสต์ OS X Dailyนี้ด้วย
brew install terminal-notifier
ยังใช้งานได้หากคุณต้องการชง
สิ่งนี้จะคืนค่าโฟกัสไปยังแอปพลิเคชันก่อนหน้าและออกจากสคริปต์หากคำตอบว่างเปล่า
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
หากคุณบอกให้เหตุการณ์ของระบบแสดงกล่องโต้ตอบจะมีความล่าช้าเล็กน้อยหากไม่ได้ทำงานมาก่อน
สำหรับเอกสารเกี่ยวกับการโต้ตอบแสดงเปิดพจนานุกรมเพิ่มมาตรฐานใน AppleScript แก้ไขหรือดูคู่มือภาษา AppleScript
ด้วยAppleScript :
display notification "Notification text" with title "Notification Title" subtitle "Notification sub-title" sound name "Submarine"
ด้วยTerminal / bashและosascript
:
osascript -e 'display notification "Notification text" with title "Notification Title" subtitle "Notification sub-title" sound name "Submarine"'
ไม่ใช้หัวข้อย่อยหรือเสียงที่ยาก
ด้วยAppleScript :
display alert "Alert title" message "Your message text line here."
ด้วยTerminal / bashและosascript
:
osascript -e 'display alert "Alert title" message "Your message text line here."'
เพิ่มบรรทัดในbashเพื่อเล่นเสียงหลังจากบรรทัดแจ้งเตือน:
afplay /System/Library/Sounds/Hero.aiff
เพิ่มบรรทัดเดียวกันในAppleScriptเพื่อให้เชลล์สคริปต์ทำงาน:
do shell script ("afplay /System/Library/Sounds/Hero.aiff")
รายการของ MacOS สร้างขึ้นในเสียงที่จะเลือกจากที่นี่
ถอดความมาจากบทความที่มีประโยชน์เกี่ยวกับการแจ้งเตือนเทอร์มินัลและแอปเปิ้ลสคริป
และ 15 เซ็นต์ของฉัน ซับหนึ่งสำหรับเทอร์มินัล mac ฯลฯ เพียงแค่ตั้งค่า MIN = เป็นอะไรก็ได้และข้อความ
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"'
ตัวอย่างโบนัสสำหรับแรงบันดาลใจในการรวมคำสั่งเพิ่มเติม สิ่งนี้จะทำให้ mac เข้าสู่โหมดสลีปบายบนข้อความด้วย :) จำเป็นต้องเข้าสู่ระบบ sudo จากนั้นการคูณเป็น 60 * 2 เป็นเวลาสองชั่วโมงก็ผ่านไปเช่นกัน
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
คำถามและคำตอบแบบจำลองมีอยู่ที่: /superuser/246353/how-to-make-the-terminal-do-a-pop-up-alert-in-osx