LinuxForum.Fans
Тема

Как включить трассировку (дебаг) SH скриптов???

Автор: Fast_Deer 6 сообщений 5215 просмотров
#294689

Господа, срочно нужна помощь!!!
Проблема следующая: есть rc скрипт вызывающий другие скрипты, которые и запускают прогу (так сказать "матрешка"), но прога не запускается. Необходимо как то разрешить вывод построчно всех команд (вызовов) с их параметрами на консоль, чтоб я мог отследить где ошибся. Такое вообще возможно?

#294690

думаю можно. надо найти и почитать
в перле например существуют
use warnings;
use diagnostics;
либо запускаем
$ perl -w my_programm
либо пишем в "шапку"
#!/usr/bin/perl -w


видел в баше где то есть специальные переменные, содержащие ошибки..

#294691
Fast Deer написал:
вывод построчно всех команд (вызовов) с их параметрами на консоль

а вообще вы сами ответили на свой вопрос.
если скрипт не очень мегатонный, построчно, каждую коммандочку в консоль и... ;)

#294695

1. я указал в теме что это sh скрипты (стнадартный шелл freebsd), а не perl. Причем из каталога rc.d
2. если б скрипт состоял из 10 строк, то включение echo спасло бы меня, но около сотни строк в 3-4 скриптах расположеных в разным местах и отследить что, как и откуда это все вызывается мне не представляется возможным.
Есть еще варианты?
ЗЫ: перед тем как сюда написать я пытался поискать все в инете, но тяжело искать когда когда не можешь правильно задать вопрос гуглу

#294696
moshell написал:
[quote=Fast Deer]вывод построчно всех команд (вызовов) с их параметрами на консоль

а вообще вы сами ответили на свой вопрос.
если скрипт не очень мегатонный, построчно, каждую коммандочку в консоль и... ;)[/quote]
вот этот построчный вывод мне и нужен. вопрос только КАК????

#294697

все, спасибо, нашел!
нужно запустить скрипт так:
#sh -x скрипт

-x xtrace
Write each command (preceded by the value of the PS4 variable
subjected to parameter expansion and arithmetic expansion) to
standard error before it is executed. Useful for debugging.
по аналогии с BASH

Войдите или зарегистрируйтесь, чтобы ответить.