Recibo un error ./test.sh: línea 13: [: missing `] 'en el archivo test.sh Intenté usar corchetes y otras opciones como -a o verificando el tamaño del archivo p1 pero el error es siempre está ahí y la instrucción else siempre se ejecuta independientemente de la entrada dada. Incluso lo intenté eliminando el; en la línea 13 pero no ayudó.
test.sh
#!/bin/bash
echo "Enter app name"
read y
$y &
top -b -n 1 > topLog.log
#-w checks for the whole word not and sub string from that word
grep -w "$y" topLog.log > p1
#-s option checks if the file p1 is present or not
if [ -s "p1"]; #line 13
then
echo "Successful "
else
echo "Unsuccessful"
fi
rm p1
Soy nuevo en bash scripting, así que si hay algún error tonto, discúlpeme.
Recibí este error al intentar usar el
&&
operador dentro de corchetes simples como[ ... && ... ]
. Tuve que cambiarme a[[ ... && ... ]]
.fuente
Te falta un espacio después de
"p1"
:if [ -s "p1" ];
fuente
agregue un espacio antes del corchete de cierre
fuente
Si creó su script en Windows y desea ejecutarlo en una máquina Linux, y está seguro de que no hay ningún error en su código, instale dos2unix en la máquina Linux y ejecútelo
dos2unix yourscript.sh
. Luego, ejecute el script.fuente