Yanıtlar:
bash -x script
veya
set -x
senaryoda.
Seçeneği tekrar ile ayarlayabilirsiniz set +x
. Sadece birkaç komut için yapmak istiyorsanız, bir alt kabuk kullanabilirsiniz: `(set -x; command1; command; ...;)
PS4
size istemi çimdik -x
. Örneğin: PS4='Line $LINENO @ $(date +%s.%N): ' bash -x script
( date
yavaşlar olsa da)
Bunlar da işe yarar:
set -v
veya
#!/bin/bash -v
Ancak -v, PS4 dizesini her komut satırından önce yazdırmaz ve bir "for" ifadesinin (örneğin) adımlarını ayrı ayrı izlemez. -X olmasa da yorumlar eko yapar.
İşte -v kullanarak çıktının bir örneği:
#!/bin/bash -v
# this is a comment
for i in {1..4}
do
echo -n $i
done
1234echo
echo hello
hello
İşte -x ile aynı betiğin sonucu:
+ 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
-V ve -x arasındaki farklara vurgu eklemek için "echo -n" yi dahil ettiğime dikkat edin. Ayrıca, -v "-o ayrıntılı" ile aynıdır, ancak ikincisi bir shebangın bir parçası olarak çalışmıyor gibi görünüyor.
Birkaç yol var.
#!/usr/bin/env bash -x
Shebang hattı olarak.
set -x
Komut dosyasına kendisi dahil etmek, işlevi set +x
devre dışı bırakacak şekilde etkinleştirir . Bu yöntemlerin her ikisi de daha taşınabilir sh kabuğu ile çalışacaktır.
Doğru hatırlıyorsam perl de -x seçeneğine sahiptir.
gibi gider
language -x script
dil = python, perl, bash -x = işleç komut dosyası = dosyaadı
Umarım yardımcı olur.
-x
Python'da yankılanma ile ilgisi yok
set
Seçeneklerin ne olduğunu bulmak isteyenler için bu sayfada bulabilirsiniz .