मैं मैक टर्मिनल पॉप-अप / अलर्ट कैसे बना सकता हूं? Applescript?


107

मैं अपने कार्यक्रम को एक अलर्ट, सूचना प्रदर्शित करने में सक्षम होना चाहता हूं, जो भी मेरे कस्टम पाठ को प्रदर्शित करता है। यह कैसे किया जाता है? इसके अलावा, क्या एक चर सेट करने वाले कई बटन के साथ एक बनाना संभव है?

बैच के समान: echo msgbox""<a.vbs&a.vbs

जवाबों:


213

का उपयोग करें osascript। उदाहरण के लिए:

osascript -e 'tell app "Finder" to display dialog "Hello World"' 

आप जो भी एप्लिकेशन के साथ "खोजक" को बदलना चाहते हैं। ध्यान दें कि यदि वह ऐप पृष्ठभूमि में है, तो संवाद पृष्ठभूमि में भी दिखाई देगा। हमेशा अग्रभूमि में दिखाने के लिए, एप्लिकेशन के रूप में "सिस्टम ईवेंट" का उपयोग करें:

osascript -e 'tell app "System Events" to display dialog "Hello World"'

मैक ओएस एक्स संकेत पर अधिक पढ़ें ।


रुको, आप अनुप्रयोग के रूप में आवेदन संक्षिप्त कर सकते हैं?
JShoe

AppleScript इंजन स्वचालित रूप से इसे बदल देगा। बस AppleScript संपादक में उद्धरणों के बीच की रेखा को चिपकाएं, जब आप रन मारते हैं, तो यह एप्लिकेशन को निष्पादन से पहले एप्लिकेशन के साथ स्वचालित रूप से बदल देता है।
ऐनी

एक अन्य टाइपिंग सेवर: आपको "एंड इफ़", "एंड रिपीट" आदि की ज़रूरत नहीं है, बस "एंड" ठीक है और ऐप्पलस्क्रिप्ट दूसरा शब्द डालेगा।
निकोलस रिले

7
यदि आप "रद्द करें" बटन नहीं चाहते हैं, लेकिन सिर्फ {चेतावनी} के साथ "संवाद" की जगह "ओके" बटन चाहते हैं।
बार्ट बी

1
13 भाविक, मुझे पता है कि यह पुराना विषय है, लेकिन हाँ, आप कर सकते हैं। :) हालाँकि आपको टर्मिनल ssh द्वारा लॉग इन करने की आवश्यकता है। और फिर ऑस्क्रिप्‍ट का प्रदर्शन डायलॉग "हेलो!"
एलेक्स रेड्स

61

टर्मिनल से सूचना केंद्र सूचना को ट्रिगर करने के लिए इस कमांड का उपयोग करें।

osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"'

61

यदि आप किसी भी मैक ओएस एक्स संस्करण का उपयोग कर रहे हैं जिसमें अधिसूचना केंद्र है, तो आप टर्मिनल-नोटिफायर रत्न का उपयोग कर सकते हैं । पहले इसे स्थापित करें (आपको आवश्यकता हो सकती है sudo):

gem install terminal-notifier

और फिर बस:

terminal-notifier -message "Hello, this is my message" -title "Message Title"

इस OS X डेली पोस्ट को भी देखें ।


5
यह पुराने ओसास्क्रिप्ट सामान की तुलना में बहुत बेहतर है।
जॉनी

यह 10.7.5 (लायन) में काम नहीं करता प्रतीत होता है, इसमें स्पष्ट रूप से कोई सूचना केंद्र नहीं है।
नॉर्मन एच

4
brew install terminal-notifierयह भी काम करता है अगर आप काढ़ा करना पसंद करते हैं।
गक्कल

5
PSA: Mavericks पर और बाद में इसकी आवश्यकता नहीं है, बस ऑसस्क्रिप्ट की सूचना अधिसूचना का उपयोग करें , जो नीचे प्रदीप के उत्तर में उल्लिखित है।
एलेक्सचंदेल

7

यह पिछले अनुप्रयोग पर ध्यान केंद्रित करेगा और यदि उत्तर खाली था तो स्क्रिप्ट से बाहर निकल जाएगा।

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 Editor में मानक अतिरिक्त का शब्दकोश खोलें या AppleScript भाषा गाइड देखें


4

अधिसूचना में उपशीर्षक , शीर्षक और ध्वनि जोड़ना :

AppleScript के साथ :

display notification "Notification text" with title "Notification Title" subtitle "Notification sub-title" sound name "Submarine"

साथ टर्मिनल / 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."

साथ टर्मिनल / bash और osascript:

osascript -e 'display alert "Alert title" message "Your message text line here."'

अलर्ट लाइन के बाद साउंड बजाने के लिए बैश में एक लाइन जोड़ें :

afplay /System/Library/Sounds/Hero.aiff

AppleScript में समान पंक्ति जोड़ें , शेल स्क्रिप्ट को कार्य करने दें:

do shell script ("afplay /System/Library/Sounds/Hero.aiff")

यहाँ से चुनने के लिए ध्वनियों में निर्मित macOS की सूची ।

टर्मिनल और applescript सूचनाओं पर एक आसान लेख से Paraphrased ।


3

और मेरा 15 प्रतिशत। मैक टर्मिनल आदि के लिए एक लाइनर जो कुछ भी और एक संदेश के लिए बस 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"'

अधिक आदेशों को संयोजित करने की प्रेरणा के लिए एक बोनस उदाहरण; यह संदेश पर भी स्टैंडबाई नींद के लिए एक मैक डाल देगा :) सुडो लॉगिन की जरूरत है, तो दो घंटे के लिए 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

1

एक simular प्रश्न और उत्तर यहां उपलब्ध है: /superuser/246353/how-to-make-the-terminal-do-a-pop-up-alert-in-osx


इसी तरह का शीर्षक, हां, लेकिन अलग सवाल। मैं एक विंडो बनाना चाहता हूं जो प्रकट होती है, जिसके बाद बंद करने के लिए उपयोगकर्ता इंटरैक्शन (एक बटन मारना) की आवश्यकता होती है।
JShoe

0

मैंने इसे हल करने के लिए एक स्क्रिप्ट बनाई जो यहां है । इसके लिए आपको किसी अतिरिक्त सॉफ्टवेयर की आवश्यकता नहीं है। स्थापना:
brew install akashaggarwal7/tools/tsay
उपयोग:
sleep 5; tsay

योगदान करने के लिए स्वतंत्र महसूस करो!


9
"किसी अतिरिक्त सॉफ़्टवेयर की आवश्यकता नहीं है ... बस इसे स्थापित करें" जो अतिरिक्त सॉफ़्टवेयर है।
पीआरएस

@ इसकी एक स्क्रिप्ट जो पहले से ही macOS के लिए उपलब्ध कमांड चलाती है, एक सॉफ्टवेयर नहीं।
आकाश अग्रवाल

2
फिर मुझे काढ़ा और आपकी स्क्रिप्ट क्यों स्थापित करनी है? देखो मेरा मतलब है? ;)
पीआरएस

हालाँकि, मैं आपको कमांड कमांड से परिचित कराने का श्रेय देता हूँ ... मैंने आज कुछ नया सीखा है! lol
PRS

@ डीआरएस ग्लैड आप कमांड के पार आ गए, यह काफी उपयोगी है। आपकी अन्य टिप्पणी के बारे में मुझे लगता है कि यदि आप एक डेवलपर काढ़ा पी रहे हैं तो आप का उपयोग करना बहुत आम है। और स्क्रिप्ट को स्थापित करने के बारे में, स्क्रिप्ट के स्रोत को खोलने के लिए स्वतंत्र महसूस करें और इसे स्थानीय रूप से एक फ़ाइल में कॉपी और पेस्ट करें और इसे + इसे चलाएं;)
आकाश अग्रवाल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.