Если я запустил
bash -x myscript.sh
, я получу отладочные данные.
Но если у меня есть функция в myscript.sh
, код этой функции невосприимчив к параметру -x. Он пишет для вывода только имя функции.
Как получить отладочную информацию для функций в сценариях bash?
Обновление:
После ответа ztank1013 я только что понял, что использую ksh, а не bash. Кажется, что по умолчанию в моей системе включена функция functrace (спасибо bash-o-logist)
. Я доволен, но для сообщества я оставляю вопрос открытым для ksh.
Для сценария:
#!/bin/ksh
a=2
testering(){
a=3
if [ $a -eq 3 ]; then
echo lili
fi
}
if [ $a -eq 2 ]; then
echo mimi
fi
testering
exit
вывод ksh -x ./testdebug.sh
:
+ a=2
+ [ 2 -eq 2 ]
+ echo mimi
mimi
+ testering
lili
+ exit
Итак, для ksh, в чем фокус?
(Если ответа не будет, 'правильно' перейдет в bash-o-logist.)