Jika saya memasukkan opsi bash -x , itu akan menampilkan semua baris. Tetapi skrip akan dieksekusi secara normal.
Bagaimana saya bisa mengeksekusi baris demi baris? Maka saya dapat melihat apakah itu melakukan hal yang benar, atau saya membatalkan dan memperbaiki bug. Efek yang sama ditempatkan read
di setiap baris.
Jawaban:
Anda tidak perlu membaca di setiap baris, cukup tambahkan jebakan seperti berikut ini ke dalam skrip bash Anda, itu memiliki efek yang Anda inginkan, mis.
Berfungsi, cukup uji dengan bash v4.2.8 dan v3.2.25.
VERSI PENINGKATAN
Jika skrip Anda membaca konten dari file, daftar di atas tidak akan berfungsi. Solusi dapat terlihat seperti contoh berikut.
Untuk menghentikan skrip, Anda harus membunuhnya dari shell lain dalam kasus ini.
ALTERNATIF 1
Jika Anda hanya ingin menunggu beberapa detik sebelum melanjutkan ke perintah berikutnya dalam skrip Anda, contoh berikut dapat berfungsi untuk Anda.
Saya menambahkan set + x dan set -x dalam perintah trap untuk membuat keluaran lebih mudah dibaca.
sumber
trap 'read -u1' debug
untuk menimpa masalah pengalihan baca file.Mungkin BASH Debugger adalah sesuatu untuk Anda.
sumber
apt-get install bashdb
. Kemudian Anda hanya perlu berlaribashdb your_command.sh
, mengetikstep
, lalu tekan carriage return setelah itu.brew install bashdb
Jika skrip bash Anda benar-benar sekumpulan perintah satu per satu yang ingin Anda jalankan satu per satu, Anda dapat melakukan sesuatu seperti ini, yang menjalankan setiap perintah satu per satu saat Anda menambahkan variabel
LN
, sesuai dengan nomor baris yang ingin Anda jalankan . Ini memungkinkan Anda untuk menjalankan kembali perintah terakhir dengan sangat mudah, lalu Anda hanya menambah variabel untuk melanjutkan ke perintah berikutnya.Dengan asumsi perintah Anda ada dalam file "it.sh", jalankan perintah berikut, satu per satu.
sumber
Lihat bash-stepping-xtrace .
Ini memungkinkan melangkah xtrace.
sumber
xargs: dapat memfilter garis
sumber