Saya menjalankan serangkaian perintah pada baris perintah yang membutuhkan waktu sekitar dua puluh menit untuk menyelesaikannya. Saya ingin melihat semacam pemberitahuan pada Mac saya ketika ini selesai jadi saya tidak perlu memonitor terminal ketika selesai. Apakah ada cara untuk melakukan ini?
$ svn update . && ant clean build start && *notify_me_somehow*
Edit :
Saya bisa menggunakan xclock
tetapi ini sepertinya hack. Idealnya saya bisa mengirim notifikasi ke mana saja, seperti ponsel, layar, dll.
grownlnotify
.Jawaban:
(svn update . && ant clean build start && say done) || say error
sumber
&&
untuk menyatukan beberapa perintah dan membungkusnya dengan kolektif||
atau pernyataan untuk meningkatkan kesalahan. +1 memangalias -g sd='; say done'
. Ini berarti saya hanya perlu menambahkansd
perintah apa pun, dan saya akan diberi tahu.(echo alik && echo Orly && say done) || say error
say -v Zarvox
yang membuat semua orang di sekitarnya melompat, ini adalah pemberitahuan yang sedikit kurang mengkhawatirkan.Di Mac OS 10.8 Anda dapat mengirim sendiri pesan Pusat Pemberitahuan (mirip dengan Growl tetapi terintegrasi ke Mac OS).
Lihat " Kirim Peringatan ke Pusat Pemberitahuan dari Baris Perintah di OS X " untuk melihat cara memasang permata Ruby yang memungkinkan Anda mengirim pemberitahuan dari baris perintah. Untuk menyederhanakan kasus penggunaan umum hanya peduli tentang fakta sesuatu di terminal sedang dilakukan, tambahkan alias ke .bash_profile Anda:
Maka Anda cukup melakukan:
Setelah tugas jangka panjang selesai, Anda akan mendapatkan modal popup bagus yang bertahan hingga Anda mengkliknya:
sumber
brew install terminal-notifier
. Maka Anda bisa menulismyCommand && terminal-notifier -message 'finished'
. Diuji pada OS X Yosemite (10.10.1).myCommand; terminal-notifier -message 'finished'
jika tidak, notifikasi tidak akan ditampilkan jikamyCommand
gagal.say
perintah, misalnyamy command ; terminal-notifier -message 'finished' ; say finished
Gunakan Growl .
Dalam
.dmg
file, cari tambahan, ada biner growlnotify. Instal, seperti di/usr/local/bin
. Maka Anda dapat menggunakan perintah iniuntuk menampilkan popup, seperti itu:
sumber
Pada Mac OS X Lion 10.7, Terminal memiliki beberapa indikator status baru untuk membantu dengan masalah seperti ini:
Di tab:
Aktivitas: indikator aktivitas (indikator progres pemintalan) ditampilkan ketika ada keluaran terkini ke terminal. Ini memungkinkan Anda untuk melihat apakah saat ini sibuk atau telah menyelesaikan proses yang panjang. (Atau, tentu saja, Anda dapat menggunakannya untuk mengetahui kapan ia mulai menghasilkan output setelah bekerja diam-diam untuk sementara waktu.)
Belum dibaca: ellipsis "..." ditampilkan untuk menunjukkan teks baru dan belum dibaca di tab latar belakang. Ketika Anda memilih tab, indikator dihapus.
Peringatan: "bel" ditampilkan untuk menunjukkan kapan BEL telah ditulis ke tab latar belakang atau jendela latar belakang. Selain itu, Terminal menampilkan lencana merah pada ikon aplikasi, yang menunjukkan jumlah peringatan / lonceng "belum dibaca" di semua terminal. Jika Terminal itu sendiri di latar belakang, itu juga memantul ikon Dock-nya ketika bel dimainkan.
Di jendela diperkecil ikon Dock:
Aktivitas: aktivitas ditunjukkan dengan menampilkan nama proses latar depan.
Belum dibaca: teks yang belum dibaca ditandai dengan elipsis.
Jendela terminal yang diperkecil menampilkan konten langsung dalam ikon Dock mereka. Ini dapat digunakan untuk melihat apakah ada aktivitas, atau bahkan untuk menentukan apa yang dilakukan terminal, jika output yang Anda cari dapat diidentifikasi (misalnya, tampilan "atas" cukup mudah dikenali bahkan pada ukuran kecil). Ini sangat berguna ketika perbesaran Dock dihidupkan atau Anda memiliki ruang untuk Dock besar.
Selain itu, Anda dapat menampilkan sesuatu di terminal untuk menarik perhatian Anda (yang akan terlihat bahkan di jendela yang diperkecil). Sebagai contoh:
Tampilkan tanda bintang besar:
banner \*
Balikkan tampilan:
printf '\e[?5h'
Warnai layar merah:
tput setab 1; tput clear
Duduk dalam satu lingkaran, berkedip layar:
while true; do printf '\e[?5h'; sleep 1; printf '\e[?5l'; sleep 1; done
Ada juga kode pelarian untuk memanipulasi windows (memindahkan, mengatur ukuran, memperbesar, memperkecil, dll.). Anda dapat memperbesar jendela Terminal, misalnya:
Lihat "manipulasi jendela" di http://invisible-island.net/xterm/ctlseqs/ctlseqs.html untuk detailnya.
Pendekatan lain adalah dengan menggunakan AppleScript untuk menampilkan peringatan di jendela terpisah:
sumber
Saya tahu saya terlambat ke pertanyaan tapi saya pikir ada bagian yang hilang yang mungkin membantu. Saya telah menemukan bahwa, meskipun rapi, membuat terminal Anda berbicara dengan Anda tidak sepenuhnya berfungsi. Apa yang lebih baik adalah sesuatu yang lebih subtil seperti ini:
Seperti yang ditunjukkan Chris, Lion telah menambahkan sedikit lencana pemberitahuan ketika BEL dilemparkan. Anda dapat membuangnya sendiri dengan perintah:
Jadi, jika Anda melakukan beberapa pekerjaan di latar belakang dan ingin pemberitahuan ketika selesai Anda dapat mencoba sesuatu seperti:
Ini menjalankan perintah ping sebagai tugas latar belakang (penggantungan & menyelesaikan ini) dan meminta peringatan sederhana ketika selesai. Secara historis BEL telah digunakan untuk membuat bunyi bip perangkat keras [yang mengerikan] itu, namun Lion dengan penuh selera menggantikannya dengan efek suara "perintah tidak sah", lencana pemberitahuan, dan ikon terminal memantul dua kali di dermaga.
sumber
printf '\a'
akan setara dengantput bel
. Perhatikan bahwa Terminal tidak memantulkan ikon Dock jika tab yang menyebabkan peringatan saat ini aktif.Anda juga bisa menggunakan perintah build in say untuk notifikasi, mis .: say "ant: build: done." Lihat: kata orang di terminal.
sumber
Saya hadir dalam jawaban ini dua hal:
afplay
, yang memutar file suara , untuk notifikasi.Saya memiliki script ini,
~/bin/donebeep
:Ini memainkan suara yang berbeda tergantung pada apakah argumennya adalah 0. Lalu saya memiliki alias:
(Bahwa mereka memiliki nama yang sama tidak relevan dan mungkin ide yang buruk.)
Untuk menggunakannya dalam contoh Anda
svn update . && ant clean build start; donebeep
,. Perhatikan bahwa saya menggunakan;
daripada&&
, sehingga dapat memberi tahu saya tentang kegagalan serta kesuksesan.Sebelum saya pelajari
afplay
, saya biasasay
berbicara pesan. Perandonebeep
dimainkan oleh skrip ini:Skrip ini berbicara kode keluar secara langsung alih-alih memiliki dua pesan berbeda. Itu juga menyebutkan nama direktori saat ini (untuk membantu memperjelas tugas mana yang dilakukan), dan dapat diberikan teks tambahan untuk mengatakan dengan meneruskan parameter ke alias (itu sebabnya alias ada
"$@"
di dalamnya). Catat trailing&
sehingga Anda tidak perlu menunggu pidato selesai sebelum mendapatkan prompt.The man page untuk
afplay
tidak lengkap;afplay -h
daftar semua opsi:sumber
Saya membuat alat sederhana yang melakukan ini. https://github.com/vikfroberg/brb
Instalasi
Node.js perlu diinstal: http://nodejs.org
Instruksi
sumber
Saya menulis
ntfy
untuk tujuan ini. Ini adalah lintas platform dan secara otomatis dapat mengirim notifikasi ketika perintah yang berjalan lama selesai.Jika Anda memiliki Python
pip
(kebanyakan distro Linux dan MacOS memilikinya), berikut ini cara menginstalnya dan mengaktifkan pemberitahuan otomatis:Lihat di http://ntfy.rtfd.io
Selain itu, ia juga dapat:
sumber
Ubuntu mengirim alias berikut ini di ~ / .bashrc:
Dengan ini, Anda kemudian dapat melakukan hal-hal seperti:
Mungkin ada yang setara dengan
notify-send
di Mac OSX? Saya telah melihat popup Windows serupa di Mac dan Ubuntu.sumber
notify-send
di Mac OS X.Masalah saya dengan suara dan modal windows adalah saya tidak tahu dari mana mereka berasal. Saat ini saya bekerja dengan banyak ruang, dan kadang-kadang lebih dari 20 jendela terminal.
Solusi saya portabel untuk sisi unix, dan harus bekerja dengan apa pun yang mendukung urutan pelarian ansi. Solusi ini bekerja dengan Snow Leopard, dan mungkin akan bekerja dengan versi terminal yang lebih kuno.
Baris tunggal di .bash_profile
Hancurkan itu:
Jika Anda tidak suka merah, google ascii escape kode warna latar belakang. Perhatikan bahwa ini tidak mengubah seluruh layar merah, tetapi hanya output apa pun setelah perintah selesai.
sumber
Saya membuat skrip untuk menyelesaikan ini yang ada di sini . Anda tidak memerlukan perangkat lunak tambahan untuk ini. Instalasi:
brew install akashaggarwal7/tools/tsay
Penggunaan:
sleep 5; tsay
Silakan berkontribusi!
sumber
Inilah fungsi bash saya (cukup taruh di mana saja di Anda
~/.bashrc
atau~/.zshrc
:Untuk menggunakannya:
watch echo 'hi there'
Anda juga dapat menyesuaikan suara notifikasi seperti yang didokumentasikan di sini: https://apple.stackexchange.com/a/115373/9622
sumber
Saya melakukan hal semacam itu sepanjang waktu. Baris perintah saya mungkin terlihat seperti
Jika
bin/setup
danbundle install
perintah selesai dengan sukses, saya akan mendengar suara sistem / dikte mengatakan "Semua selesai". Jika salah satu dari dua kesalahan pertama keluar, maka&&
rantai tidak akan diikuti, dan yang akan saya dengar adalah "Selesai".sumber
Anda dapat menggunakan
osascript
perintah bawaan untuk menjalankan Apple Script yang menampilkan pemberitahuan, misalnyaAnda dapat merangkai bersama-sama dengan titik koma sederhana, misalnya
sumber