2013-07-06 11 views
6

Ho ereditato uno script di shell con oltre 700 righe e ho notato che quando eseguivo lo script sputa l'errore a un certo punto dell'esecuzione.Debug degli script di shell con numeri di riga

errore Eg che vedo sulla console è qualcosa di simile

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

ho cercato di usare set -x e la maggior parte dei suggerimenti da questo link, però ho notato che tutto l'output che mi è stato sempre abbastanza erano rumoroso.

C'è un modo per ottenere il numero esatto della riga di dove un comando della shell ha restituito uno stato diverso da zero?

+0

Quale shell stai usando esattamente? –

+0

Sto usando la shell bash – tawheed

+0

Usa 'bash -vx' per eseguire lo script della shell –

risposta

4

Mettete questo nella parte superiore dello script che si desidera eseguire il debug:

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

e forse reindirizzare l'output in un file per l'analisi facile.

+0

Cosa fa? Il "chiamante" è una funzione di shell incorporata? Modifica: [sì, lo è.] (Http://unix.stackexchange.com/q/19323) –

Problemi correlati