Si ingreso la opción bash -x , mostrará toda la línea. Pero el script se ejecutará normalmente.
¿Cómo puedo ejecutar línea por línea? Entonces puedo ver si hace lo correcto, o aborto y soluciono el error. Se pone el mismo efecto read
en cada línea.
Respuestas:
No necesita poner una lectura en cada línea, solo agregue una trampa como la siguiente en su script bash, tiene el efecto que desea, por ejemplo.
Funciona, solo lo probé con bash v4.2.8 y v3.2.25.
VERSIÓN MEJORADA
Si su secuencia de comandos está leyendo contenido de archivos, la lista anterior no funcionará. Una solución alternativa podría parecerse al ejemplo siguiente.
Para detener el script, tendría que matarlo desde otro shell en este caso.
ALTERNATIVA1
Si simplemente desea esperar unos segundos antes de continuar con el siguiente comando en su secuencia de comandos, el siguiente ejemplo podría funcionar para usted.
Estoy agregando set + x y set -x dentro del comando trap para que la salida sea más legible.
fuente
trap 'read -u1' debug
para anular el problema de redirección de lectura de archivos.Quizás el depurador BASH sea algo para ti.
fuente
apt-get install bashdb
. Entonces solo necesita ejecutarbashdb your_command.sh
, escribirstep
y luego presionar retorno de carro después de eso.brew install bashdb
Si su script bash es realmente un grupo de comandos únicos que desea ejecutar uno por uno, puede hacer algo como esto, que ejecuta cada comando uno por uno cuando incrementa una variable
LN
, correspondiente al número de línea que desea ejecutar . Esto le permite ejecutar el último comando nuevamente de manera muy fácil, y luego simplemente incrementar la variable para ir al siguiente comando.Suponiendo que sus comandos están en un archivo "it.sh", ejecute lo siguiente, uno por uno.
fuente
Eche un vistazo a bash-stepping-xtrace .
Permite pisar xtrace.
fuente
xargs: puede filtrar líneas
fuente