শেল টাস্ক সমাপ্তির জন্য গ্রোয়েল বিজ্ঞপ্তি


12

(ওএসএক্স নির্দিষ্ট)

আমি ছাড়াও অন্য অনেকের মতো প্রায়শই নিজেকে শেলটিতে এমন একটি প্রক্রিয়া থেকে লাথি মারতে দেখি যা পুরো হতে এক মিনিট বা দুই মিনিট সময় নেয় (উদাহরণস্বরূপ একটি বৃহত এসএনএন কমিট)। সেই সময়ে, আমি প্রায়শই Alt- ট্যাব করি এবং রেডডিট / স্ল্যাশডট / উইকিপিডিয়া / যাই হোক না কেন রিফ্রেশ করি। শেল প্রক্রিয়া শেষ হয়ে গেলে এমন কিছু সেট আপ করা ভাল হবে যা পোঁক নোটিফিকেশন পোস্ট করে।

আমার আদর্শ বিশ্বে এটি এটির মতো কাজ করবে: "টার্মিনালে খোলা একটি ট্যাব থেকে যদি কোনও প্রক্রিয়া স্রেফ প্রকাশিত হয়, তবে গ্রোয়েল বিজ্ঞপ্তি পোস্ট করুন" "

অন্য কেউ এই সেট আপ মত কিছু আছে?


1
মনে রাখবেন যে আপনি যদি এখনও স্ক্রিনে বসে থাকেন তবে গ্রল কেবল আপনাকে জানাবে। দীর্ঘ প্রোগ্রামের জন্য, "শেষ করুন" কমান্ডটি অডিও ইঙ্গিতটি ব্যবহার করুন এটি শেষ হয়েছে।

@ মানকফ: অডিও বিজ্ঞপ্তি শব্দ অন্তর্ভুক্ত করতে আপনি growlnotifyঅ্যাপ্লিকেশন বিজ্ঞপ্তি সেটিংস কনফিগার করতে পারেন Growl.prefPane। এটি অবশ্য আপনার কার্যকর করা আদেশের উপর নির্ভর করে পরিবর্তনযোগ্য নয় say। তবে এটি কম ভয়ঙ্কর।
ড্যানিয়েল বেক

উত্তর:


11

এটি করার জন্য আপনি গ্রলনোটাইফাই ইনস্টল করতে পারেন ।

$ ./some_program && growlnotify Title -m Message

আপনার কমান্ডটি সম্পাদন করার আগে অবশ্যই আপনার এটি চিন্তা করা উচিত। বিকল্প (যদিও আমি এটি অর্জন করতে জানি না) প্রতিটি কমান্ডের জন্য গ্রোল বিজ্ঞপ্তি হবে যা অত্যন্ত বিরক্তিকর হবে।


আপনার ব্যবহারের ক্ষেত্রে গ্রলনোটাইফাই ব্যবহার সহজ করতে, সম্পাদনা ~/bash_profileকরুন এবং নিম্নলিখিতগুলি যুক্ত করুন:

function long {
    $@
    /usr/local/bin/growlnotify Finished -m 'Done'
}

এখন আপনি সহজভাবে long your_command(অনুরূপ sudo) করতে পারেন । Ctrl-Aলাইনের শুরুতে কার্সারটি অবস্থান করে, যদি আপনি (আমার মতো) সর্বদা প্রকৃত কমান্ডটি প্রথমে টাইপ করেন এবং পরে উপসর্গটি যুক্ত করতে চান need

আমার বাশ-ফু দুর্ভাগ্যক্রমে growlnotifyবার্তায় কমান্ড যুক্ত করতে অপর্যাপ্ত


এই উত্তরটিতে @ ম্যানকফের মন্তব্য:

কমান্ডটি চলার সময় আপনি কেবল টাইপ করতে পারেন, এটি পরে কার্যকর হয়। আমি আমার জন্য নিম্নলিখিত ফাংশন তৈরি করেছি:

function gn {
    /usr/local/bin/growlnotify Finished -m "$@"
}

হিসাবে ব্যবহার করুন gn svn


2
কমান্ডের আগে আপনার এটি চিন্তা করার দরকার নেই। যদি এটি চলমান থাকে, আপনি বুঝতে পারছেন যে এটি শেষ হয়ে গেলে আপনাকে বিজ্ঞপ্তি দিতে চান, কেবল "gn foo" টাইপ করুন (বা অডিও ইঙ্গিতগুলির জন্য "বলুন") লিখুন, এন্টার টিপুন এবং বর্তমান কমান্ডটি শেষ হলে সেই আদেশটি চলবে ।

আপনি স্বয়ংক্রিয়ভাবে এটি করার বিষয়ে মন্তব্য করেছেন ... একটি টাইমস্ট্যাম্প স্পর্শ করতে PS1 বা কিছু ব্যবহার করুন। পিএস 1 এটি কতক্ষণ ছুঁয়েছে তা যাচাই করতে PS2 ব্যবহার করুন। এটি যদি> এন সেকেন্ড হয়ে যায় তবে গ্রোলনটিফাইটি চালান। এখন এটি বিরক্তিকর নয় কারণ এটি প্রতিটি আদেশের ক্ষেত্রে ঘটে না।

@ মানকফ ট্রু টাইপিং হ্রাস করার জন্য একটি সাধারণ ফাংশন যথেষ্ট।
ড্যানিয়েল বেক

@ মানকফ পিএস 2? এটি কি কেবল ধারাবাহিকতার প্রম্পট নয়? এটি প্রতিটি আউটপুট লাইনে উপসর্গ করে না ..?
ড্যানিয়েল বেক

PS1 / PS2 কেবলমাত্র অনুমান ছিল যে জায়গাগুলি আমি এটি প্রয়োগ করতে চাইলে খোঁজ শুরু করব। সম্ভবত পুরো জিনিসটি কেবল PS1 এ এমবেড করা যেতে পারে। এবং সম্ভবত জেনেরিক গ্রোল-ফর-প্রতিটি-কমান্ড সেটআপ করার বিভিন্ন উপায় রয়েছে।

2

আপনার growlnotifyযা দরকার তা হ'ল গ্রল নোটিফিকেশনগুলি ট্রিগার করার জন্য একটি সি এল এল প্রোগ্রাম। আপনি এটি হিসাবে ব্যবহার করতে পারেন:

./script.sh;; growlnotify -m "done"

এতে আরও কয়েকটি নকব রয়েছে যা আপনি খেলতে পারেন, growlnotify -hআরও তথ্যের জন্য ব্যবহার করতে পারেন


ধন্যবাদ। আমি ঠিক একই সময়ে মন্তব্য করেছি যখন আমি এটিও পেয়েছি। সেমিকোলনটি && এর চেয়েও বেশি অর্থবোধ করে।
ইজরোক

1
@ জেরক আমি চিত্রিত করেছি যে কেউ সাফল্য এবং ব্যর্থতার অবস্থার মধ্যে বিভিন্ন বার্তা ব্যবহার করতে পারে &&এবং ||কমান্ড কার্যকর করার পরে যদি কোনও বার্তায় কেবল আগ্রহী হয় তবে ;;তা নির্দোষ। =)
দুর্বৃত্তরা

2

ড্যানিয়েল বেকের উত্তরকে সংশোধন করা আপনি যদি এই সামান্য পরিবর্তন করেন তবে এটি এটিকে খুব সুন্দর করে তোলে।

function long {
    command=$@
    $command
    /usr/local/bin/growlnotify Finished -m "$command completed."
}

তারপরে আপনি 'লং এসএনএন আপ' চালানোর সময় আপনি বার্তাটি দেখতে পাবেন 'এসএনএন আপ সম্পূর্ণ হয়েছে completed'

আপনি একই সাথে শেল স্ক্রিপ্টগুলি গ্রহণ করার জন্য অনেক সময় চালনা করলে খুব সুন্দর nice


2

এখন যে ওএসএক্স ১০.৮ এবং তার পরে দেশীয় বিজ্ঞপ্তি রয়েছে, টার্মিনাল-বিজ্ঞাপকের মাধ্যমে আমি একই লক্ষ্যটি অর্জন করি :

  1. মেশান ইনস্টল করুন
  2. $ brew install terminal-notifier
  3. এটি এতে যুক্ত করুন ~/.bash_profile:

    function gn {
        terminal-notifier  -message ' ' -title 'Finished'
    }

. ~/.bash_profileসেশন তৈরি করার সময় আপনার প্রোফাইলটি স্বয়ংক্রিয়ভাবে উত্সাহিত হওয়ায় আপনার প্রোফাইলটি (ভবিষ্যতের টার্মিনাল সেশনের জন্য প্রয়োজনীয় নয়) সর্বাধিক সন্ধান করেছে তা নিশ্চিত করুন।

আপনার প্রিয় কমান্ড দিয়ে পরীক্ষা করুন, তারপরে ফাংশন কল।

ls ; gn

টার্মিনাল-বিজ্ঞাপকের সাথে যুক্তিগুলি কিছুটা উন্নতি করতে পারে, তবে ফাংশনটি পাস করার জন্য পূর্ববর্তী কমান্ডটি ধরার দ্রুত চেষ্টা সফল হয়নি এবং এটি আমার প্রয়োজনীয় সমস্ত কার্যকারিতা পেয়ে যায়। যথা, ;gnদীর্ঘস্থায়ী যে কোনও প্রক্রিয়া শেষে একটি বিজ্ঞপ্তি পেতে যুক্ত করা।



1

এটি "দীর্ঘ চলমান" প্রক্রিয়াগুলির জন্য স্বয়ংক্রিয়ভাবে আহ্বানের এই উপায়: http://hints.macworld.com/article.php?story=20071009124425468

এটি হুক করে $PROMPT_COMMANDএবং 10 সেকেন্ডের বেশি সময় নেয় এমন প্রক্রিয়াগুলির সমাপ্তির বিষয়টি জানায়। আপনার নিজের পরিবেশ এবং কর্মপ্রবাহের (যেমন উদাহরণস্বরূপ, সম্পাদনা lessবা সম্পাদনার আহ্বান এড়ানো) উপযোগী করার জন্য আপনার এটি টুইট করতে হবে তবে এটি বাক্সের বাইরে যুক্তিসঙ্গতভাবে কাজ করবে বলে মনে হচ্ছে।


আমি নিজে চেষ্টা করে দেখিনি, তবে সম্পূর্ণ স্বয়ংক্রিয় পদ্ধতিটি সত্যই আকর্ষণীয় বলে মনে হচ্ছে। এখানে অন্যান্য সমস্ত সমাধানের আগেই জেনে রাখা দরকার যে কমান্ডটি দীর্ঘস্থায়ী হবে এবং স্ক্রিপ্টটি ট্রিগার করতে মনে রাখবে (যেমন। Ls; গ্রোলোনিফাইটি)। আমি ম্যানুয়ালি এটি ট্রিগার প্রয়োজন হয় না ধারণা পছন্দ।
ইজারক

0

আমি সবেমাত্র আরও কিছুটা ঘুরে দেখলাম এবং এর জন্য একটি সহজ পদ্ধতি পেয়েছি। আমি এটি হতে চাই তার চেয়ে একটু বেশি ম্যানুয়াল, তবে এখানে রয়েছে।

  1. গ্রোলনটিফাই ইনস্টল করুন (এটি গ্রলের ইনস্টলেশন ডাউনলোডের অতিরিক্ত ফোল্ডারে রয়েছে) 1।
  2. && growlnotify -m "Message"দীর্ঘ প্রক্রিয়াতে < > যুক্ত করুন ।

এই মুহূর্তে আমার জন্য কাজ করে, তবে আমি আরও ভাল করতে পারতাম, methinks।


0

কোনও তৃতীয় পক্ষের সফ্টওয়্যার ছাড়াই ওএসএক্স ১০.৯++ সমাধান:

ওএসএক্স ১০.৯ এবং তারপরে, আপনি display notificationটার্মিনাল থেকে গ্রলের মতো দেখতে অ্যাপলস্ক্রিপ্ট কমান্ডটি ব্যবহার করতে পারেন :

osascript -e 'display notification with title "Process Completed."'

আপনি যদি প্রতি বারের মতো টাইপ করতে না চান তবে আপনি এটি ব্যবহার করতে পারেন alias:

alias growl='osascript -e "display notification with title \"Process Completed.\""'

উদাহরণ:

long-running-script.sh; growl
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.