Non è necessario inserire una lettura in ogni riga, basta aggiungere una trappola come la seguente nel tuo script bash, ha l'effetto desiderato, ad es.
#!/usr/bin/env bash
set -x
trap read debug
< YOUR CODE HERE >
Funziona, appena testato con bash v4.2.8 e v3.2.25.
versione migliorata
Se lo script sta leggendo il contenuto dai file, quanto sopra elencato non funzionerà. Una soluzione alternativa potrebbe essere simile all'esempio seguente.
#!/usr/bin/env bash
echo "Press CTRL+C to proceed."
trap "pkill -f 'sleep 1h'" INT
trap "set +x ; sleep 1h ; set -x" DEBUG
< YOUR CODE HERE >
Per fermare lo script si dovrebbe uccidere da un altro shell in questo caso.
ALTERNATIVE1
Se si vuole semplicemente attendere alcuni secondi prima di procedere al comando successivo nello script che segue potrebbe funzionare per voi.
#!/usr/bin/env bash
trap "set +x; sleep 5; set -x" DEBUG
< YOUR CODE HERE >
Aggiungo set + x e set -x all'interno del comando trap per rendere l'output più leggibile.
fonte
2012-01-31 13:52:40
Forse più in generale puoi anche https://stackoverflow.com/questions/951336/how-to-debug-a-bash-script/45096876#45096876 – tripleee