ฉันกำลังดำเนินการอยู่ทุกขณะและจากนั้นสคริปต์งูหลามบางตัวที่ใช้เวลาในการประมวลผลค่อนข้างนาน
ฉันรันพวกเขาเช่นนี้:
$ time python MyScript.py
ฉันจะเล่นเสียงได้อย่างไรเมื่อการประมวลผลสคริปต์เสร็จสิ้น
ฉันใช้ Ubuntu 10.10 (เดสก์ท็อป Gnome)
ฉันกำลังดำเนินการอยู่ทุกขณะและจากนั้นสคริปต์งูหลามบางตัวที่ใช้เวลาในการประมวลผลค่อนข้างนาน
ฉันรันพวกเขาเช่นนี้:
$ time python MyScript.py
ฉันจะเล่นเสียงได้อย่างไรเมื่อการประมวลผลสคริปต์เสร็จสิ้น
ฉันใช้ Ubuntu 10.10 (เดสก์ท็อป Gnome)
คำตอบ:
ผนวกคำสั่งใด ๆ ที่เล่นเสียง นี่อาจจะง่ายเหมือน
$ time mycommand; printf '\7'
หรือซับซ้อนเท่า
$ time mycommand && paplay itworked.ogg || paplay bombed.ogg
(คำสั่งสมมติว่ามีการติดตั้ง pulseaudio แทนที่โปรแกรมเล่นเสียงของคุณซึ่งจะขึ้นอยู่กับสภาพแวดล้อมเดสก์ทอปของคุณ)
paplay
น่าจะเป็นคำสั่งที่ดีที่สุดในการใช้เล่นเสียงบนระบบ Linux ที่ "ทันสมัย"
time python MyScript.py -n 40 && paplay /usr/share/sounds/ubuntu/stereo/desktop-login.ogg || paplay /usr/share/sounds/ubuntu/stereo/phone-outgoing-busy.ogg
printf '\7'
งานสำหรับฉัน (paplay ไม่ (คอมไพล์เชลล์)) แต่มันก็เป็นเพียงขนาดเล็กมากBIP มีรหัสอื่นที่ทำให้เกิดเสียงอื่นหรือไม่ ฉันพยายาม\6
, \8
แต่พวกเขามีตัวละครบางตัว
\7
(BEL) มักจะเป็นตัวละครเดียวที่อาจทำให้เกิดเสียง (ดูบทความ Wikipedia ตัวละครควบคุม ); โปรดทราบว่าอาจไม่ส่งเสียงเสมอ
for i in {1..30}; do for j in {1..3}; do printf '\7'; sleep 0.12; done; sleep 0.4; done
spd-say
sleep 2; spd-say 'get back to work'
วนลูปไม่สิ้นสุดด้วย-w
หากคุณต้องการแรงจูงใจพิเศษ:
sleep 2; while true; do spd-say -w 'get back to work'; done
ติดตั้งล่วงหน้าบน 14.04 ผ่านทางแพคเกจspeech-dispatcher
: http://releases.ubuntu.com/trusty/ubuntu-14.04.4-desktop-amd64.manifestสำหรับคนตาบอดฉันคิดว่า?
เพิ่มป๊อปอัพ
คอมโบนี้เป็นตัวช่วยชีวิต ( b
ย่อมาจากbeep
):
b() ( spd-say 'done'; zenity --info --text "$(date);$(pwd)" & )
แล้ว:
super-slow-command;b
ถ้าฉันอยู่ที่ไหนสักแห่งในห้องฉันจะได้ยินมันและรู้ว่างานที่ต้องทำนั้นยาวนาน
มิฉะนั้นฉันจะเห็นป๊อปอัปเมื่อฉันกลับไปที่คอมพิวเตอร์ของฉัน
ที่เกี่ยวข้อง: https://stackoverflow.com/questions/7035/how-to-show-a-gui-message-box-from-a-bash-script-in-linux
spd-say
เครื่องมือที่เกี่ยวข้องspeech-dispatcher
คุณอาจต้องติดตั้งชุดข้อมูลย่อยเช่นspeech-dispatcher-utils
(Fedora 24)
เพียงแค่เลือกเสียงบนฮาร์ดไดรฟ์ของคุณและวางคำสั่งเพื่อเล่นทันทีหลังจากคำสั่งที่คุณรออยู่ พวกเขาจะเกิดขึ้นตามลำดับ:
$ time python MyScript.py; mplayer ~/ScriptDone.wav
(คุณสามารถใช้เครื่องเล่นใดก็ได้ตามธรรมชาติ) ฉันมีสคริปต์ที่เรียกalertdone
ว่าเล่นเสียงและแสดงการแจ้งเตือน libnotify เมื่อทำงาน; ฉันใช้มันสำหรับโอกาสนี้:
$ time python MyScript.py; alertdone "Done timing"
มันง่ายจริงๆดังนั้นถ้าคุณต้องการที่จะทำให้คุณเองคุณสามารถฐานเกี่ยวกับเรื่องนี้ (เหมืองต้องnotify-more
, mplayer
และ~/tones/alert_1.wav
แม้ว่า):
#!/bin/bash
message=${1:-"Finished working"}
notify-more -t 10000 -i /usr/share/icons/gnome/32x32/actions/insert-object.png "Process Finished" "$message"
mplayer ~/tones/alert_1.wav
notify-more
หรือnotify-send
อาจเป็นทางเลือกที่มีประโยชน์ในการเล่นเสียง
time python MyScript.py; play /path/so/sound.ogg
play
เป็นเครื่องเล่นเสียงขั้นพื้นฐาน (ไม่มี UI) จากsox Install sox http://bit.ly/software-smallแพ็คเกจ คุณสามารถแทนที่มันด้วยเครื่องเล่นเสียงที่ควบคุมด้วยบรรทัดคำสั่งอื่น ๆ
play
, หรือaplay
paplay
(ระบบ Ubuntu ของฉันมีaplay
และเป็นpaplay
ค่าเริ่มต้น)
time python MyScript.py -n 40; paplay /usr/share/sounds/ubuntu/stereo/desktop-login.ogg
ได้ผลขอบคุณ
my-script && notify-send "done"
ส่วนตัวผมใช้ สิ่งนี้จะส่งการแจ้งเตือนทางเดสก์ท็อปซึ่งบน Linux Mint (Cinnamon) จะมีลักษณะดังนี้:
คุณสามารถทำให้สิ่งนี้เกิดขึ้นโดยอัตโนมัติ
ผมจะแสดงให้คุณเห็นว่าในนั้นเพิ่มข้อมูลเกี่ยวกับzsh
bash
สาระสำคัญมีลักษณะเช่นนี้:
preexec()
{
starttime=$SECONDS
}
precmd()
{
if ((SECONDS - starttime >= 5)); then
aplay "sound.wav"
# or printf "\b", or notify-send, or whatever
fi
}
คุณสามารถทำมันได้ก็ต่อเมื่อโปรแกรมนั้นเป็น Python เช่น
preexec()
{
starttime=$SECONDS
case $3 in python*)
command_is_python=true;;
*)
command_is_python=false;;
esac
}
precmd()
{
if $command_is_python && ((SECONDS - starttime >= 5)); then
aplay "sound.wav"
# or printf "\b", or notify-send, or whatever
fi
}
ในbash
วิธีที่ดีที่สุดคือการดาวน์โหลดpreexec.bash.txtและหาแหล่งที่มา (เช่น. ~/preexec.bash.txt
ที่ด้านบนสุดของคุณ~/.bashrc
จากนั้นด้านบน (หรือบางสิ่งที่ใกล้เคียง) ควรทำงาน (ไม่แน่ใจเกี่ยวกับ$3
บิตเพื่อตรวจสอบว่าคำสั่งคือ Python หรือไม่ .)
หากคุณกำลังใช้ GNOME สถานีฉันยังอยากจะชี้ให้คุณกระพริบ GNOME ร์มินัล มันเป็นแพตช์ที่ฉันเขียนซึ่งทำให้เทอร์มินัลกระพริบเมื่อคำสั่งเสร็จสิ้นดังนั้นคุณสามารถ Alt-Tab ไปยังสิ่งอื่นจากนั้นมันจะแจ้งให้คุณทราบเมื่อเสร็จสิ้น
คุณไม่จำเป็นต้องเพิ่มคำสั่งให้กับทุกสิ่งคุณสามารถใช้สคริปต์ได้จริงซึ่งจะทำสิ่งนี้ให้คุณโดยอัตโนมัติ มันเรียกว่าundistract-meและมีให้ที่ Github
ตัวอย่าง
sudo apt install undistract-me #installs the script (on Debian)
echo 'source /etc/profile.d/undistract-me.sh' >> ~/.bashrc #adds auto-enable to your console
echo 'export LONG_RUNNING_COMMAND_TIMEOUT=XXX' >> ~/.bashrc #where XXX is number of seconds when the command is long enough to alert you
echo 'export UDM_PLAY_SOUND=1' >> ~/.bashrc #to enable sound alert
ตอนนี้เริ่มทุบตีใหม่และคุณถูกตั้งค่า เสียงและการเตือนสามารถเปลี่ยนแปลงได้โดยการแก้ไขสคริปต์
ผู้เล่นสามารถใช้งานได้ ฉันกำลังเพิ่มความcvlc
สมบูรณ์
bash
หรือzsh
? จริงๆแล้วมีบางวิธีในการทำให้สิ่งนี้เกิดขึ้นโดยอัตโนมัติ แต่พวกมันมีส่วนเกี่ยวข้องและขึ้นอยู่กับว่าคุณใช้เชลล์แบบไหน