Когда я вызываю bash с параметром -x
, он печатает каждую команду перед ее выполнением. Однако команды печатаются с префиксом +.
Есть ли способ заставить его печатать команды, но без этого префикса? С -x
или без него?
Когда я вызываю bash с параметром -x
, он печатает каждую команду перед ее выполнением. Однако команды печатаются с префиксом +.
Есть ли способ заставить его печатать команды, но без этого префикса? С -x
или без него?
Вы можете настроить префикс при использовании bash -x
, установив переменную PS4. Итак, в вашем .bashrc у вас может быть что-то вроде этого:
export PS4=''
Или, если вы хотите что-то отладить, пусть он напечатает номер строки следующим образом:
export PS4='[ $LINENO ] '
Вставьте в качестве первой строки:
set -v
затем запустите его без -x
set -v
печатает не то же самое, что set -x
- он печатает команды до переменных и т.д. Например, если у вас есть var="value"
и команда echo {1..2} "$var"
, с set -x
будет напечатано + echo 1 2 value
, а с set -v
будет напечатано echo {1..2} "$var"
.
- person Gordon Davisson; 11.10.2020
set -v
на самом деле печатает необработанные входные строки по мере их чтения; он не печатает команды ни до, ни после их раскрытия. Сравните for i in 1 2 3; do echo $i; done
с set -x
и set -v
.
- person user414777; 11.10.2020