Kadang-kadang ketika saya menjalankan perintah itu tidak menampilkan output, jadi saya tidak yakin apakah mereka berhasil atau tidak. Apakah mungkin membuat semua perintah mendapat umpan balik jika sudah berjalan dengan benar atau tidak? Atau minimal untuk menampilkan id umpan balik yang telah mereka jalankan (benar atau tidak)
command-line
rajlego
sumber
sumber
cryptsetup
bisa secara default melewatkan beberapa pesan kesalahan. Ini adalah hal yang baik untuk memiliki$?
di AndaPS1
. Langkah selanjutnya adalah menambahkan waktu saat ini, untuk selalu mengetahui timing perintah;)Jawaban:
(Saya pikir karena Anda memposting di dalam Tanya Ubuntu, kami dapat menganggap Anda berbicara tentang shell default, yaitu, Bash .)
Ada jawaban yang sangat bagus dalam pertanyaan Stack Overflow Dalam skrip shell: gema perintah shell saat dijalankan (ini bukan hanya solusi spesifik Ubuntu).
Yang perlu Anda lakukan adalah menggunakan perintah set untuk mengaktifkan verbose atau xtrace.
akan memberikan daftar parameter yang saat ini beralih ke atas atau off .
atau versi longform:
akan mengaktifkan verbose ON .
Saya pikir apa yang Anda inginkan sebenarnya xtrace. Ini tidak hanya akan menggemakan setiap perintah yang Anda jalankan, itu juga akan memperluas parameter dan memberi Anda lebih banyak umpan balik. Jadi jika saya melakukan sesuatu yang konyol seperti mengetik 'hai' di terminal, saya akan mendapatkan gema dari apa yang saya ketik serta laporan / jejak apa yang shell lakukan untuk menjalankan perintah 'hai' (lihat screenshot di bawah ini) ):
Untuk mengaktifkan xtrace:
atau:
Untuk menonaktifkan parameter ini, Anda (kontra-intuitif) memanggil perintah yang sama kecuali dengan simbol plus + bukan tanda hubung atau simbol minus, jadi, misalnya:
akan berubah menjadi OFF , seperti halnya:
akan berubah xtrace OFF .
Panduan terperinci tentang opsi shell ada di Bab 33. Opsi, Panduan Script Bash Lanjutan .
sumber
whoami >/dev/null
.Untuk memeriksa apakah beberapa perintah berhasil atau tidak, Anda dapat memeriksa status pengembalian , yang diberikan oleh
$?
, dari perintah sebelumnya dengan:Status pengembalian
0
berarti perintah selesai dengan berhasil, sedangkan output non-nol ( kode kesalahan ) akan berarti beberapa masalah ditemui atau ada kesalahan dan kategori dapat diketahui dari kode kesalahan. Kode kesalahan Linux / C didefinisikan dalam/usr/include/asm-generic/errno-base.h
dan/usr/include/asm-generic/errno.h
.Juga di bash,
.bashrc
mendefinisikan aliasalert
yang dapat digunakan untuk memberi tahu dengan status penyelesaian. Anda harus melampirkan alias dengan perintah atau perintah kombo seperti ini:Anda dapat menambahkan baris kode berikut ke
~/.bashrc
file Anda untuk menampilkan status pengembalian dari perintah terakhir yang dijalankan ..(buka file
~/.bashrc
dengan editor teks pilihan Anda, dan salin baris di atas, tempel di file dan simpan. Luncurkan instance baru dari terminal, dan Anda harus memilikinya dalam tindakan. Atau alih-alih Anda dapat mendefinisikan beberapa fungsi dan menggunakan denganPS1
seperti diilustrasikan di bawah ini.)demo kecil:
Hanya bermain dengan
PS1
:) .. sedikit lagi,(Anda dapat memodifikasi fungsi agar lebih mewah, seperti yang dilakukan @gronostaj di posnya.)
sumber
PS1
. Ini yang saya gunakan, dengan angka merah jika ada kesalahan, tidak ada tambahan jika perintah terakhir berhasil:\[\033[01;41;37m\]${?#0}\[\033[00;01;36m\] \u@\h:\w\[\033[00m\]\$
~/.bashrc
file?^_^
pada kesuksesan, dan merahx_x
pada hal lain.Anda dapat mengubah prompt perintah Anda untuk menampilkan tanda centang hijau ketika perintah sebelumnya keluar dengan 0 dan X merah sebaliknya. Arch Linux Wiki memiliki beberapa kode yang bagus untuk ditambahkan ke Anda
bash.rc
:(Saya telah menonaktifkan kode kesalahan yang sebenarnya karena saya tidak seperti itu, jika Anda ingin melihat kode yang sebenarnya hanya menghapus
#
dari baris ini:#PS1="$White\$? "
)Begini tampilannya:
sumber
Ya , dimungkinkan untuk mendapatkan umpan balik untuk setiap perintah yang Anda jalankan di terminal. Ini bekerja atas dasar
echo $?
yang mengembalikan 0 untuk penyelesaian perintah yang berhasil dan nilai lain selain 0 untuk kegagalan.Untuk mendapatkan umpan balik keberhasilan atau kegagalan, tambahkan baris di bawah ini ke
~/.bashrc
file.Dan kemudian
~/.bashrc
file sumber untuk membuatnya berfungsi.Penjelasan:
Untuk setiap perintah yang Anda jalankan di terminal,
;if [[ $? == 0 ]]; then tput setaf 6 && echo SUCCESS; tput sgr0; else tput setaf 1 && echo FAILURE; tput sgr0; fi;
kode ini akan secara otomatis mengikatnya.Contoh:
sumber
bind 'RETURN: " && echo SUCCESS || echo FAILED \n"'
juga akan melakukan hal yang sama, Anda tidak perlu memeriksa[[ $? == 0 ]]
secara eksplisit.