Bagi mereka yang mencari setopsi apa, Anda dapat menemukannya di halaman manual ini .
mkobit
Anda cukup memperluas shebang seperti ini#!/bin/bash -x
sobi3ch
Jawaban:
110
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; ...;)
Saya selalu menggunakan ini untuk efek yang besar. Outputnya terlihat sedikit lebih kotor dari yang Anda perkirakan.
Scott Pack
2
Dengan mengatur PS4Anda dapat mengubah prompt -x. Misalnya: PS4='Line $LINENO @ $(date +%s.%N): ' bash -x script( dateakan memperlambatnya)
Walter Tross
23
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 commentfor i in{1..4}do
echo -n $i
done1234echo
echo hello
hello
Inilah hasil dari skrip yang sama dengan -x:
+for i in'{1..4}'+ echo -n 11+for i in'{1..4}'+ echo -n 22+for i in'{1..4}'+ echo -n 33+for i in'{1..4}'+ echo -n 44+ 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.
set -o xtracedan set +o xtraceteman-teman Anda (itu lebih bertele-tele, daripada -o verbose, dan hasilnya pergi ke STDERR, sebagai lawan dari verbose, yang tampaknya masuk ke STDOUT).
Termasuk set -xdalam skrip itu sendiri akan mengaktifkan fungsionalitas sementara set +xakan menonaktifkannya. Kedua metode ini juga akan bekerja dengan shell sh yang lebih portabel.
Jika saya ingat dengan benar perl juga memiliki opsi -x.
set
opsi apa, Anda dapat menemukannya di halaman manual ini .#!/bin/bash -x
Jawaban:
atau
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; ...;)sumber
PS4
Anda dapat mengubah prompt-x
. Misalnya:PS4='Line $LINENO @ $(date +%s.%N): ' bash -x script
(date
akan memperlambatnya)Ini juga berfungsi:
atau
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:
Inilah hasil dari skrip yang sama dengan -x:
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.
sumber
Ini juga harus bekerja:
sumber
Ini seharusnya bekerja:
sumber
set -o xtrace
danset +o xtrace
teman-teman Anda (itu lebih bertele-tele, daripada-o verbose
, dan hasilnya pergi ke STDERR, sebagai lawan dari verbose, yang tampaknya masuk ke STDOUT).Lihat lebih banyak tips di sini
sumber
Ada beberapa cara.
sebagai garis shebang.
Termasuk
set -x
dalam skrip itu sendiri akan mengaktifkan fungsionalitas sementaraset +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.
sumber
berjalan seperti
bahasa = python, perl, bash -x = skrip operator = nama file
semoga membantu.
sumber
-x
tidak ada hubungannya dengan menggema di Python#! /bin/bash -x
lakukan apa yang kamu inginkan.sumber