Jawaban:
bash -x script
atau
set -x
dalam naskah.
Anda dapat membatalkan opsi dengan set +x
. Jika Anda hanya ingin melakukannya untuk beberapa perintah, Anda dapat menggunakan subshell: `(set -x; command1; command; ...;)
PS4
Anda dapat mengubah prompt -x
. Misalnya: PS4='Line $LINENO @ $(date +%s.%N): ' bash -x script
( date
akan memperlambatnya)
Ini juga berfungsi:
set -v
atau
#!/bin/bash -v
Tapi -v tidak mencetak string PS4 sebelum setiap baris skrip dan itu tidak melacak langkah-langkah pernyataan "untuk" (misalnya) secara individual. Itu gema komentar sementara -x tidak.
Berikut ini contoh output menggunakan -v:
#!/bin/bash -v
# this is a comment
for i in {1..4}
do
echo -n $i
done
1234echo
echo hello
hello
Inilah hasil dari skrip yang sama dengan -x:
+ for i in '{1..4}'
+ echo -n 1
1+ for i in '{1..4}'
+ echo -n 2
2+ for i in '{1..4}'
+ echo -n 3
3+ for i in '{1..4}'
+ echo -n 4
4+ echo
+ echo hello
hello
Perhatikan bahwa saya memasukkan "echo -n" untuk menambahkan penekanan pada perbedaan antara -v dan -x. Juga, -v sama dengan "-o verbose", tetapi yang terakhir tampaknya tidak berfungsi sebagai bagian dari shebang.
Ada beberapa cara.
#!/usr/bin/env bash -x
sebagai garis shebang.
Termasuk set -x
dalam skrip itu sendiri akan mengaktifkan fungsionalitas sementara set +x
akan menonaktifkannya. Kedua metode ini juga akan bekerja dengan shell sh yang lebih portabel.
Jika saya ingat dengan benar perl juga memiliki opsi -x.
berjalan seperti
language -x script
bahasa = python, perl, bash -x = skrip operator = nama file
semoga membantu.
-x
tidak ada hubungannya dengan menggema di Python
set
opsi apa, Anda dapat menemukannya di halaman manual ini .