2013-07-06 12 views
6

Odziedziczyłem ponad 700 skryptów powłoki liniowej i zauważyłem, że po uruchomieniu skrypt wypluwa błąd w pewnym momencie wykonania.Debugowanie skryptów powłoki o numerach linii

błąd Eg, że widzę na konsoli jest coś takiego jak

cat: /Wreck/wreck_module.rb: No such file or directory 

Próbowałem użyć set -x i większość wskazówek z tego link, jednak zauważyłem, że wszystkie wyjścia że ja trafiałem dość głośny.

Czy istnieje sposób uzyskania dokładnego numeru wiersza miejsca, w którym polecenie powłoki zwróciło stan niezerowy?

+0

Jaką powłokę używasz dokładnie? –

+0

Używam powłoki bash – tawheed

+0

Użyj 'bash -vx', aby wykonać skrypt powłoki –

Odpowiedz

4

Umieścić to w górnej części skryptu chcesz debugować:

#!/bin/bash 
function trace_line(){ 
    caller 
} 
trap trace_line debug 

i może przekierować dane wyjściowe do pliku w celu łatwej analizy.

+0

Co to oznacza? Czy "wywołujący" jest wbudowaną funkcją powłoki? Edycja: [tak, to jest.] (Http://unix.stackexchange.com/q/19323) –

Powiązane problemy