hice una pequeña prueba con el siguiente código:
#!/bin/bash
if [ -f "buggyScript.sh" ; then
echo "found this buggy script"
fi
Nota los desaparecidos] en el caso. Ahora ingresé
bash -n buggyScript.sh
y la falta] no se detectó.
El segundo script de prueba era la siguiente:
#!/bin/bash
if [ -f "buggyScript.sh" ]; then
echo "found this buggy script"
Nota del fi que falta en al final del caso. Prueba de esto con
bash -n buggyScript.sh
regresaron
buggyScript.sh: line 5: syntax error: unexpected end of file
Conclusión: Prueba el guión con la opción n detecta algunos errores, pero de ninguna manera todos ellos. Así que supongo que realmente encuentras todos los errores solo mientras ejecutas el script.
Parece que no funciona. Ejecuté ksh -n test.sh pero no enlisté el error de sintaxis que estaba allí en test.sh – sachin
Sí, funciona. Estoy seguro de que no hay ningún error de sintaxis. Si nos muestra el guión, podemos analizar si sus expectativas de encontrar un error de sintaxis son correctas. – Jens
Luego prueba con 'sh -n script'. Deberia de funcionar. Sin embargo, si su error de sintaxis está en un nombre de comando inválido, solo quedaría atrapado en tiempo de ejecución. 'sh -n' solo verifica la sintaxis real del shell. – tripleee