GNU/Linux >> Belajar Linux >  >> Linux

Apa yang dilakukan `set -x`?

set -x

Mencetak jejak perintah sederhana, untuk perintah, perintah kasus, perintah pilih, dan aritmatika untuk perintah dan argumennya atau daftar kata terkait setelah diperluas dan sebelum dijalankan. Nilai variabel PS4 diperluas dan nilai yang dihasilkan dicetak sebelum perintah dan argumennya yang diperluas.

[sumber]

Contoh

set -x
echo `expr 10 + 20 `
+ expr 10 + 20
+ echo 30
30
set +x
echo `expr 10 + 20 `
30

Contoh di atas mengilustrasikan penggunaan set -x . Saat digunakan, ekspresi aritmatika di atas telah diperluas. Kami dapat melihat bagaimana satu baris dievaluasi langkah demi langkah.

  • Langkah pertama expr telah dievaluasi.
  • Langkah kedua echo telah dievaluasi.

Untuk mengetahui lebih lanjut tentang set → kunjungi tautan ini

ketika datang ke skrip shell Anda,

[ "$DEBUG" == 'true' ] && set -x

Skrip Anda mungkin telah mencetak beberapa baris informasi tambahan saat mode eksekusi dipilih sebagai DEBUG . Secara tradisional, orang biasa mengaktifkan mode debug saat skrip dipanggil dengan argumen opsional seperti -d


-u:dinonaktifkan secara default. Saat diaktifkan, pesan kesalahan ditampilkan saat menggunakan variabel yang belum dikonfigurasi.

-v:tidak aktif secara default. Setelah aktivasi, konten asli informasi akan ditampilkan (tanpa resolusi variabel) sebelum informasi ditampilkan.

-x:tidak aktif secara default. Jika diaktifkan, konten perintah akan ditampilkan sebelum perintah dijalankan (setelah resolusi variabel, terdapat simbol ++).

Bandingkan perbedaan berikut:

/ # set -v && echo $HOME
/root
/ # set +v && echo $HOME
set +v && echo $HOME
/root

/ # set -x && echo $HOME
+ echo /root
/root
/ # set +x && echo $HOME
+ set +x
/root

/ # set -u && echo $NOSET
/bin/sh: NOSET: parameter not set
/ # set +u && echo $NOSET

set -x mengaktifkan mode shell tempat semua perintah yang dieksekusi dicetak ke terminal. Dalam kasus Anda, ini jelas digunakan untuk debugging, yang merupakan kasus penggunaan umum untuk set -x :mencetak setiap perintah saat dijalankan dapat membantu Anda memvisualisasikan alur kontrol skrip jika tidak berfungsi seperti yang diharapkan.

set +x menonaktifkannya.


Linux
  1. Apa Artinya “–” (tanda hubung ganda)?

  2. Apa yang Dilakukan "lc_all=c"?

  3. Apa yang Digema $? Mengerjakan??

  1. Apa yang Sebenarnya Dilakukan Libgl_always_indirect=1?

  2. Apa. ~/.bashrc Perintah Lakukan??

  3. Apa yang Sebenarnya Dilakukan Grub_gfxpayload_linux=text?

  1. Apa yang dikembalikan malloc(0)?

  2. Asal utas kworker

  3. Apa arti set -e dalam skrip bash?