Yanıtlar:
Kullanın bash -v
.
Bu komut dosyası:
#!/bin/bash -v
echo "Hello, World" | sed 's|Hello|Goodbye|'
echo "Done."
Bu çıktı:
#!/bin/bash -v
echo "Hello, World" | sed 's|Hello|Goodbye|'
Goodbye, World
echo "Done."
Done.
Ne yazık ki, PS4
genişletilmiş komutları yazdırmak gibi özel bir işaretleyici yoktur . Her ikisini de komutları hızlıca tanımlamak için olsa da birleştirebilirsiniz:
#!/bin/bash -vx
echo "Hello, World" | sed 's|Hello|Goodbye|'
+ echo 'Hello, World'
+ sed 's|Hello|Goodbye|'
Goodbye, World
echo "Done."
+ echo Done.
Done.
set -x bunu yapmanın başka bir yoludur.
$ cat a.sh
#!/bin/bash
set -x
echo "Hello, World" | sed 's|Hello|Goodbye|'
echo "Done."
Çıktı olacak:
sh a.sh
+ echo 'Hello, World'
+ sed 's|Hello|Goodbye|'
Goodbye, World
+ echo Done.
Done.
set -x
senaryodaki herhangi bir yeri ve hatta tekrar devre dışı bırakabilirsiniz . Yani sadece echo "Done"
hatta istiyorsan , set -x
hemen öncekine koy .