আমি কীভাবে ম্যাক টার্মিনাল পপ-আপ / সতর্কতা তৈরি করব? 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

অ্যাপলস্ক্রিপ্ট ইঞ্জিনটি স্বয়ংক্রিয়ভাবে এটি প্রতিস্থাপন করবে। অ্যাপলস্ক্রিপ্ট সম্পাদক এ কোটগুলির মধ্যে কেবল লাইনটি পেস্ট করুন, যখন আপনি রান টিপুন, এটি কার্যকর করার আগে অ্যাপ্লিকেশনটির সাথে স্বয়ংক্রিয়ভাবে অ্যাপ্লিকেশনটিকে প্রতিস্থাপন করে।
অ্যান

অন্য টাইপিং সেভার: আপনার "শেষ যদি", "শেষ পুনরাবৃত্তি", ইত্যাদির দরকার নেই, কেবল "শেষ" ঠিক আছে এবং অ্যাপলস্ক্রিপ্ট দ্বিতীয় শব্দটি সন্নিবেশ করবে।
নিকোলাস রিলে

7
আপনি যদি "বাতিল" বোতামটি না চান তবে কেবলমাত্র "ওকে" বোতামটি {সংলাপ replace সাথে {সতর্কতা replace এর সাথে প্রতিস্থাপন করতে চান}
বার্ট বি

1
13 অভিক, আমি জানি এটি পুরানো বিষয়, তবে হ্যাঁ, আপনি পারেন। :) তবে আপনাকে লগ ইন করতে হবে। যেমন টার্মিনাল ssh দ্বারা by এবং তারপরে ওসাস্ক্রিপ্ট -e 'ডিসপ্লে ডায়লগটি "হ্যালো!" শুরু করুন
অ্যালেক্স রেডস

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এছাড়াও যদি আপনি মদ তৈরি করতে চান তবে কাজ করে।
gklka

5
পিএসএ: ম্যাভেরিক্সে এবং পরে এটির প্রয়োজন হয় না, কেবল ওসাস্ক্রিপ্টের প্রদর্শন বিজ্ঞপ্তি ব্যবহার করুন , যা প্রদীপের উত্তরে নীচে উল্লেখ করা হয়েছে।
অ্যালেক্সচেন্ডেল

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

আপনি যদি সিস্টেম ইভেন্টগুলিকে ডায়ালগটি প্রদর্শন করতে বলেছিলেন, যদি এটি আগে না চালানো হত তবে কিছুটা বিলম্ব হবে।

ডিসপ্লে ডায়ালগ সম্পর্কিত ডকুমেন্টেশনের জন্য, অ্যাপলস্ক্রিপ্ট সম্পাদকটিতে স্ট্যান্ডার্ড সংযোজনগুলির অভিধান খুলুন বা অ্যাপলস্ক্রিপ্ট ভাষা গাইড দেখুন


4

যোগ করার পদ্ধতি উপশিরোনাম , শিরোনাম এবং শব্দ বিজ্ঞপ্তির:

সঙ্গে AppleScript :

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

সঙ্গে টার্মিনাল / ব্যাশ এবং 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."

সঙ্গে টার্মিনাল / ব্যাশ এবং osascript:

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

সতর্কতা লাইনের পরে শব্দটি বাজানোর জন্য ব্যাশে একটি লাইন যুক্ত করুন :

afplay /System/Library/Sounds/Hero.aiff

অ্যাপলস্ক্রিপ্টে একই লাইন যুক্ত করুন , শেল স্ক্রিপ্টটি কাজ করতে দিন:

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

এখান থেকে চয়ন করার জন্য শব্দগুলিতে নির্মিত ম্যাকোসগুলির তালিকা ।

টার্মিনাল এবং অ্যাপলস্ক্রিপ্ট বিজ্ঞপ্তিগুলির জন্য একটি সহজ নিবন্ধ থেকে প্যারাফ্রেস করা ।


3

এবং আমার 15 শতাংশ। ম্যাক টার্মিনাল ইত্যাদির জন্য একটি লাইনার কেবল এমআইএন = যা কিছু এবং একটি বার্তা সেট করে

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

একটি সিমুলার প্রশ্ন এবং উত্তর এখানে পাওয়া যায়: https://superuser.com


অনুরূপ শিরোনাম, হ্যাঁ, তবে ভিন্ন প্রশ্ন। আমি এমন একটি উইন্ডো তৈরি করতে চাই যা প্রদর্শিত হবে যাতে ব্যবহারকারীর ইন্টারঅ্যাকশন (একটি বোতামটি চাপানো) এর পরে বন্ধ করা উচিত।
JShoe

0

আমি এখানে যা এটি সমাধান করার জন্য একটি স্ক্রিপ্ট তৈরি করেছি । এর জন্য আপনার কোনও অতিরিক্ত সফ্টওয়্যার লাগবে না। ইনস্টলেশন:
brew install akashaggarwal7/tools/tsay
ব্যবহার:
sleep 5; tsay

অবদান নির্দ্বিধায়!


9
"কোনও অতিরিক্ত সফ্টওয়্যার লাগবে না ... কেবল এটি ইনস্টল করুন" এটি অতিরিক্ত সফ্টওয়্যার।
PRS

@ পিআরএস এটির একটি স্ক্রিপ্ট যা কোনও সফ্টওয়্যার নয়, ম্যাকোসের জন্য ইতিমধ্যে উপলব্ধ কমান্ডগুলি চালায়।
আকাশ আগারওয়াল

2
তাহলে আমাকে কেন বারু এবং আপনার স্ক্রিপ্ট ইনস্টল করতে হবে? আমি কি বলতে চাইছি? ;)
পিআরএস

তবে আমি আপনাকে কমান্ডের সাথে পরিচয় করিয়ে দেওয়ার কৃতিত্ব দেব ... আমি আজ নতুন কিছু শিখেছি! lol
PRS

@ পিআরএস খুশি হয়ে আপনি কমান্ডটি বলতে পেরেছিলেন, এটি বেশ কার্যকর। আপনার অন্যান্য মন্তব্য সম্পর্কে আমি মনে করি আপনি যদি বিকাশকারী মদ পান তবে এটি আপনার ব্যবহারের পক্ষে সাধারণ। এবং স্ক্রিপ্টটি ইনস্টল করার বিষয়ে, স্ক্রিপ্টের উত্সটি খোলার জন্য নির্দ্বিধায় এবং কোনও ফাইলের মধ্যে স্থানীয়ভাবে এটি অনুলিপি / পেস্ট করুন এবং chmod + x এটি চালনা করুন;)
আকাশ আগারওয়াল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.