Si hallas algún problema en tu código o trabajo, recuerda probar siempre en un ambiente de testing antes aplicar el código al trabajo final.
Solución:
;;
solo se usa en case
constructos, para indicar el final de una alternativa. (Está presente donde tienes break
Cía.)
case $answer in
yes) echo 'yay!';;
no) echo 'boo!';;
esac
Sintácticamente, ;
y &
ambos marcan el final de un comando. Una nueva línea es equivalente a ;
, en una primera aproximación. La diferencia entre ellos es que ;
o nueva línea indica que el comando debe ejecutarse en primer plano, mientras que &
indica que el comando debe ejecutarse en segundo plano.
Así que aquí necesitas & wait
. & ;
es un error de sintaxis (no puede tener un comando vacío). & ;;
es también un error de sintaxis; ash lo deja ir (como si hubieras escrito solo &
), pero bash se queja. Evidentemente, su sh es una variante de ceniza (como dash, que es /bin/sh
en muchos derivados de Debian).
Debe ser usado en un case
declaración, entre casos. El problema que tienes aquí es que ambos &
y ;
son separadores de comandos, y solo debe usar uno de ellos.
Si te ha sido de utilidad este post, sería de mucha ayuda si lo compartes con otros juniors de este modo contrubuyes a extender nuestra información.