Dla tych, którzy szukają setopcji, możesz je znaleźć na tej stronie podręcznika .
mkobit
Możesz po prostu przedłużyć #!/bin/bash -x
shebang w
Odpowiedzi:
110
bash -x script
lub
set-x
w skrypcie.
Możesz ponownie ustawić opcję za pomocą set +x. Jeśli chcesz to zrobić tylko dla kilku poleceń, możesz użyć podpowłoki: `(set -x; command1; command; ...;)
Ale -v nie drukuje łańcucha PS4 przed każdą linią skryptu i nie śledzi indywidualnie kroków instrukcji „for” (na przykład). Odsyła komentarze, podczas gdy -x nie.
Oto przykład danych wyjściowych przy użyciu -v:
#!/bin/bash -v# this is a commentfor i in{1..4}do
echo -n $idone1234echo
echo hello
hello
Oto wynik tego samego skryptu z opcją -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
Zauważ, że dodałem „echo -n”, aby podkreślić różnice między opcjami -v i -x. Ponadto, -v jest tym samym, co „-o gadatliwy”, ale ten ostatni wydaje się nie działać jako część shebang.
set -o xtracei set +o xtracesą twoimi przyjaciółmi (jest bardziej gadatliwy niż -o verbose, a dane wyjściowe trafiają do STDERR, w przeciwieństwie do pełnych, które wydają się logować do STDOUT).
Dołączenie set -xdo samego skryptu włączy tę funkcję, a jednocześnie set +xją wyłączy. Obie te metody będą również działać z bardziej przenośną powłoką sh.
set
opcji, możesz je znaleźć na tej stronie podręcznika .#!/bin/bash -x
Odpowiedzi:
lub
w skrypcie.
Możesz ponownie ustawić opcję za pomocą
set +x
. Jeśli chcesz to zrobić tylko dla kilku poleceń, możesz użyć podpowłoki: `(set -x; command1; command; ...;)źródło
PS4
możesz dostosować podpowiedź-x
. Np .:PS4='Line $LINENO @ $(date +%s.%N): ' bash -x script
(date
spowolni to)Te działają również:
lub
Ale -v nie drukuje łańcucha PS4 przed każdą linią skryptu i nie śledzi indywidualnie kroków instrukcji „for” (na przykład). Odsyła komentarze, podczas gdy -x nie.
Oto przykład danych wyjściowych przy użyciu -v:
Oto wynik tego samego skryptu z opcją -x:
Zauważ, że dodałem „echo -n”, aby podkreślić różnice między opcjami -v i -x. Ponadto, -v jest tym samym, co „-o gadatliwy”, ale ten ostatni wydaje się nie działać jako część shebang.
źródło
Powinno to również działać:
źródło
To powinno działać:
źródło
set -o xtrace
iset +o xtrace
są twoimi przyjaciółmi (jest bardziej gadatliwy niż-o verbose
, a dane wyjściowe trafiają do STDERR, w przeciwieństwie do pełnych, które wydają się logować do STDOUT).Zobacz więcej wskazówek tutaj
źródło
Jest kilka sposobów.
jako linia shebang.
Dołączenie
set -x
do samego skryptu włączy tę funkcję, a jednocześnieset +x
ją wyłączy. Obie te metody będą również działać z bardziej przenośną powłoką sh.Jeśli dobrze pamiętam, perl ma również opcję -x.
źródło
idzie jak
język = python, perl, bash -x = operator script = nazwa pliku
mam nadzieję, że to pomoże.
źródło
-x
nie ma nic wspólnego z odbijaniem echa w Pythonie#! /bin/bash -x
robi co chcesz.źródło