আমি যে স্থানে কাজ করি সেগুলিতে কমান্ড রয়েছে যা কার্যকর করতে দীর্ঘ সময় নেয়।
কমান্ডের প্রয়োগ শেষ হয়ে গেলে কি আমাকে জানাতে কোনও আদেশ / ইউটিলিটি ব্যবহার করতে পারি? এটি একটি পপআপ উইন্ডো বা কিছুটা শব্দ হতে পারে।
আমি যে স্থানে কাজ করি সেগুলিতে কমান্ড রয়েছে যা কার্যকর করতে দীর্ঘ সময় নেয়।
কমান্ডের প্রয়োগ শেষ হয়ে গেলে কি আমাকে জানাতে কোনও আদেশ / ইউটিলিটি ব্যবহার করতে পারি? এটি একটি পপআপ উইন্ডো বা কিছুটা শব্দ হতে পারে।
উত্তর:
কমান্ড চালানোর আগে সাধারণত যদি আপনি এটি জানেন তবে আপনি এটি দিয়ে এটি শুরু করতে পারেন:
command; command-after &
পূর্ববর্তী কমান্ডটি বের command-after
হওয়ার পরে এটি নির্বাহ করবে (নির্গমন কোড নির্বিশেষে) &
ব্যাকগ্রাউন্ডে এটা শুরু হবে।
আপনি যদি সফল বা ব্যর্থতার প্রস্থান সম্পর্কে চিন্তা করেন তবে যথাক্রমে ব্যবহার করুন:
command && command-after-only-if-success &
command || command-after-only-if-fail &
যদি কমান্ডটি ইতিমধ্যে শুরু হয়ে গেছে আপনি এটিকে স্থগিত করার জন্য কাজের নিয়ন্ত্রণ ব্যবহার করতে পারেন, তবে fg
আপনার বিজ্ঞপ্তি দিয়ে শৃঙ্খলিত করে এটি অগ্রভাগে ফিরিয়ে দিন :
command
# enter Ctrl-z
fg ; command-after
এখন… আপনি এর পরে যা করতে চান তা আপনার পরিবেশের উপর নির্ভর করে।
যে কোনও সিস্টেমে আপনি টার্মিনাল বেলটি "রিং" করতে পারেন । আপনার সঠিক সিস্টেমের উপর নির্ভর করে যা আসলে কাজ করে (বিএসডি বনাম জিএনইউ লিনাক্স ইত্যাদি), তবে কী করা tput bel
উচিত। যদিও আমি এখনই নির্ভরযোগ্যভাবে এটি পরীক্ষা করতে পারিনি। আরও জানতে "রিং বেল" অনুসন্ধান করুন।
উপর Mac OS X এর , আপনি একটি ফাইন্ডারে ডায়ালগ পপ আপ AppleScript ব্যবহার করতে পারে:
osascript -e 'tell Application "Finder" to display dialog "Job finished" '
আপনি এটি কিছু বলতে পারে:
say "Job finished"
অথবা আপনি মাউন্টেন সিংহের বিজ্ঞপ্তি সিস্টেমটি ব্যবহার করতে পারেন:
sudo gem install terminal-notifier # <= only need to do this once
terminal-notifier -message "Job finished!" -title "Info"
ইন গনোম , zenity
একটি দ্বারা GTK ডায়ালগ বক্সের কম্যান্ড লাইন থেকে বলা দেখাতে পারেন। এই স্ট্যাক ওভারফ্লো প্রশ্নটিও দেখুন: লিনাক্সে ব্যাশ স্ক্রিপ্ট থেকে একটি বার্তা বাক্স দেখাচ্ছে । এটি আপনার প্রিয় প্যাকেজ ম্যানেজারের মাধ্যমে ইনস্টল করা যেতে পারে।
zenity --info --text="Job finished"
কিছু বিতরণ থাকতে পারে xmessage
। বিশেষত জিটিকে পরিবেশের জন্য রয়েছে gxmessage
।
ডেস্কটপ পরিবেশে যেগুলি ডেস্কটপ বিজ্ঞপ্তি নির্দিষ্টকরণ যেমন উবুন্টু এবং জিনোম প্রয়োগ করে , সেখানে একটি বিজ্ঞপ্তি সিস্টেম রয়েছে যা আপনি notify-send
(অংশটির libnotify
) সাহায্যে ট্রিগার করতে পারেন ।
notify-send "Job finished!"
কেডিএ ব্যবহার করে kdialog
উদাহরণস্বরূপ:
kdialog --passivepopup 'Job finished'
(command; command-after) &
চাও?
ইউনিক্স-মতো সিস্টেমে আপনি শ্রবণযোগ্য-বেলটি বেজে উঠতে পারেন:
echo -e "\a"
tput bel
আমি ম্যাকস এক্স এর জন্য একটি সাধারণ সরঞ্জাম তৈরি করেছি, এটি ঠিক এটি করে। https://github.com/vikfroberg/brb
স্থাপন
$ npm install -g brb
নির্দেশনা
$ sleep 3; brb
একটি শব্দ বিজ্ঞপ্তি পেতে আপনি ব্যবহার করতে পারেন spd-say "Some text"
। উদাহরণ:
some-command; spd-say "Yo"
sudo apt-get install speech-dispatcher
। অথবা বিকল্পগুলি জিজ্ঞাসা করুন
আমি ntfy
ঠিক এই উদ্দেশ্যে লিখেছি । এটি ক্রস প্ল্যাটফর্ম এবং দীর্ঘ চলমান কমান্ড সমাপ্ত হওয়ার পরে স্বয়ংক্রিয়ভাবে বিজ্ঞপ্তিগুলি পাঠাতে পারে ।
যদি আপনার কাছে পাইথনের pip
(বেশিরভাগ লিনাক্সের ডিস্ট্রোস এবং ম্যাকোএস থাকে) থাকে তবে এটি কীভাবে ইনস্টল করবেন এবং স্বয়ংক্রিয়ভাবে বিজ্ঞপ্তিগুলি সক্ষম করবেন তা এখানে রয়েছে:
$ sudo pip install ntfy
$ echo 'eval "$(ntfy shell-integration)"' >> ~/.bashrc
$ # restart your shell
এটি http://ntfy.rtfd.io এ দেখুন
এটির পাশাপাশি এটি এটিও করতে পারে:
লিনাক্সের জন্য, প্রতিবার বিজ্ঞপ্তির জন্য কোনও কমান্ড টাইপ না করে স্বয়ংক্রিয়ভাবে এটি করার একটি নিফটি কৌশল রয়েছে।
প্রথমে অটোকি ইনস্টল করুন। এটি বিভিন্ন কীস্ট্রোকের জন্য ক্রিয়া সংজ্ঞায়িত করতে সহায়তা করে।
sudo apt-get install autokey-gtk
এখন, অটোকিতে একটি নতুন বাক্যাংশ সংজ্ঞায়িত করুন এবং হটকি Alt + এন্টার হিসাবে নির্ধারণ করুন। এই শব্দটি যুক্ত করুন:
; notify-send "Job finished!" &
#
মনে রাখবেন যে প্রথম লাইনের পরে একটি নতুন লাইন গুরুত্বপূর্ণ।
এছাড়াও, একটি উইন্ডো ফিল্টার যুক্ত করুন। আমি গুয়াক এবং টার্মিনাল ব্যবহার করি। আপনি যে কোনও টার্মিনাল ব্যবহার করেন তা অন্তর্ভুক্ত করুন।
.*(guake)|(Terminal).*
তুমি করেছ!!
এখন, প্রতিবারই যখনই আপনাকে কোনও আদেশের জন্য বিজ্ঞপ্তিগুলি পাওয়া দরকার, এন্টার / রিটার্নের পরিবর্তে Alt + Enter ব্যবহার করে এটি চালান।
সূত্র: http://dotpad.blogspot.in/2014/12/notifications-when-command-finished.html
যদিও অন্য উত্তরগুলি ইতিমধ্যে একটি সমাপ্ত কাজের বিষয়ে বিজ্ঞপ্তি পাওয়ার বেশিরভাগ উপায়কে কভার করেছে, আপনি নিম্ন বিন্যাসে আপনার প্রশ্ন জিজ্ঞাসা করার কারণে আমি আমার দুটি সেন্ট দিতে চাই:
আমি যে স্থানে কাজ করি সেগুলিতে কমান্ড রয়েছে যা কার্যকর করতে দীর্ঘ সময় নেয়।
আমি একই সমস্যা আছে। কখনও কখনও কিছু 15 মিনিটের জন্য চলতে পারে।
আমার .bashrc এ আমার নিম্নলিখিত ফাংশন রয়েছে:
# push a notification to your phone. can be handy if you're running a
# build and you want to be notified when it's finished.
push() {
curl -s -F "token=PUSHOVER_TOKEN" \
-F "user=PUSHOVER_USER" \
-F "title=terminal" \
-F "message=$1" https://api.pushover.net/1/messages.json > /dev/null 2>&1
}
এটি আমার ফোনে একটি বিজ্ঞপ্তি ঠেকাতে পুশওভার অ্যাপ্লিকেশনটি ব্যবহার করে। এইভাবে আমি মধ্যাহ্নভোজনে যেতে পারি বা একটি সভায় প্রবেশ করতে পারি এবং চলে যাওয়ার আগে কম্পিউটারে শুরু করা চাকরি সম্পর্কে এখনও অবহিত হতে পারি।
আমি এটি নিম্নলিখিত পদ্ধতিতে ব্যবহার করি:
command_to_run && push "yes! command finished successfully!" || push "awww man! something failed :-("
সুতরাং, যদি কমান্ডটি একটি সঠিক প্রস্থান কোড ফেরত দেয় তবে প্রথম ধাক্কা কার্যকর করা হবে। একটি ত্রুটিতে, দ্বিতীয়টি কার্যকর করা হবে।
এর মধ্যে আপনাকে পুশওভারে একটি ব্যবহারকারী তৈরি করতে হবে এবং https://pushover.net/ থেকে বিজ্ঞপ্তি প্রেরণের জন্য একটি অ্যাপ্লিকেশন নিবন্ধন করতে হবে
আশা করি এটি সাহায্য করেছে!
আপনি যদি নিজের ইন্টারেক্টিভ শেল হিসাবে csh বা tcsh ব্যবহার করেন তবে আপনি notify
কমান্ডটি ব্যবহার করতে পারেন :
% long-running-command &
[1] 14431
% notify %1
%
(later, when the command finishes)
[1] Done long-running-command
আপনি set -b
বা এর সাথে ব্যাশে একইরকম প্রভাব অর্জন করতে পারেন set -o notify
।
এটি সম্ভবত আপনার প্রয়োজনীয়তাগুলি পূরণ করে না, কারণ এটি সমস্ত কিছু একটি বার্তা প্রিন্ট করে; আমি মনে করি না এটি একটি উইন্ডো পপ আপ বা বেলটি বাজানোর জন্য কনফিগার করা যেতে পারে।
'Awk' চেষ্টা সহ সিস্টেমগুলিতে
awk 'BEGIN{ print "\a" }'
আমার জন্য কাজ করার একমাত্র ছিল।
আপনি যদি ব্যবহার করছেন npm
তবে নোড-নোটিফায়ার একটি ক্রস প্ল্যাটফর্ম সমাধান সরবরাহ করে ।
notify -t "Agent Coulson" --icon https://raw.githubusercontent.com/mikaelbr/node-notifier/master/example/coulson.jpg -m "Well, that's new. "
আশা করি আমি কয়েক বছর আগে এই থ্রেডটি লক্ষ্য করতাম। আমার সমাধানটি মূলত স্লহকের মতোই ছিল তবে আমি একটি স্ক্রিপ্ট লিখেছিলাম। আমি সব সময় এটি ব্যবহার। এটি ভাগ করতে এখানে পোস্ট করা।
#!/bin/bash
msg='all done'
quiet=false
if [ "$1" = '-q' ]; then quiet=true; shift; fi
if [ $# -gt 0 ]; then msg="$*"; fi
echo -ne "\x1b]0;$msg\a"
if [ -x /usr/bin/zenity ]; then
unset WINDOWID
exec zenity --info --text="$msg"
elif [ -x /usr/bin/xmessage ]; then
exec xmessage -nearmouse "$msg"
elif [ -x /usr/bin/osascript ]; then
if ! $quiet; then say "done" &; fi
osascript -e "tell application \"System Events\" to display dialog \"$msg\""
else
echo $msg
fi
একটি ছোট্ট ব্যাখ্যা: স্ট্রিংটি "\x1b]0;$msg\a"
এএনএসআই অব্যাহতি ক্রমটি হ'ল উইন্ডোটির শিরোনাম বারে বার্তাটি চালানো হয়েছিল যা থেকে এটি কার্যকর করা হয়েছিল। বার্তাটি কোন উইন্ডোটি থেকে এসেছিল তা কোন উইন্ডোটি দেখতে সক্ষম হচ্ছিল কখনও কখনও আমি এটি দেখতে খুব সহজ মনে করি।
সুতরাং এটি বেশ দেরিতে আসে, তবে আমি এটি করার জন্য একটি সিস্টেম ব্যবহার শুরু করেছি: আমার কাছে একটি বাশ স্ক্রিপ্ট রয়েছে যা পরে যে কোনও কমান্ড প্রয়োগ করা হয় তা কার্যকর করে utes
http://somesh.io/2017/02/19/get-notified-when-long-commands-are-done-executing-on-ubuntu/
#!/bin/bash
# file location : /usr/bin/n
set +e
# $@ executes whatever command is typed after the filename
$@
notify-send "Task Completed"
এবং তারপরে আমি কেবল এন
n bundle install
n npm install
অন্য সম্ভাবনাটি হ'ল alert
লিনাক্সে কাজ করা।
>any-command; alert
এটি চিত্র হিসাবে একটি বিজ্ঞপ্তি দেয়। সতর্কতা বিজ্ঞপ্তি
আমি একটি অ্যাপ্লিকেশন তৈরি করেছি যা কোনও প্রক্রিয়া শেষ হয়ে গেলে আপনার অ্যান্ড্রয়েড ফোনে একটি বিজ্ঞপ্তি প্রেরণ করবে যাতে আপনার কম্পিউটারে টিচার হওয়ার দরকার নেই।
ইনস্টল করুন, তারপরে ;notifier.sh
আপনার কমান্ডের শেষে যুক্ত করুন ।
উদাহরণস্বরূপ, যদি আপনার আদেশটি ছিল make install
, আপনি আপনার আদেশটি তৈরি করবেন:
make install; notifier.sh
fg;say "Job finished"
হবে। তবে ... এমন কি কোনও উপায় আছে যে এটি আরও স্বয়ংক্রিয়ভাবে পরিচালিত হতে পারে - যেমন বেল বাজানো বা কোনও কাজ শেষ হওয়ার পরে বিজ্ঞপ্তি দেওয়া যা এক মিনিটের মতো প্রান্তিকের চেয়েও বেশি সময় নেয়? এখানে কি শেলের ভেরিয়েবল আছে, যেমন ব্যাশ-এ, শেষ কমান্ডের সময় অতিবাহিত?