GNU/Linux >> Tutoriales Linux >  >> Linux

Error de sintaxis cerca del token inesperado 'entonces'

La solución es bastante simple. Simplemente dé espacio entre if y las llaves de apertura como se muestra a continuación.

if [ -f "$File" ]; then <code> fi


Debe haber un espacio entre if y [ , así:

#!/bin/bash
#test file exists

FILE="1"
if [ -e "$FILE" ]; then
  if [ -f "$FILE" ]; then
     echo :"$FILE is a regular file"
  fi
...

Estos (y sus combinaciones) serían todos incorrectos también:

if [-e "$FILE" ]; then
if [ -e"$FILE" ]; then
if [ -e "$FILE"]; then

Estos, por otro lado, están bien:

if [ -e "$FILE" ];then  # no spaces around ;
if     [    -e   "$FILE"    ]   ;   then  # 1 or more spaces are ok

Por cierto, estos son equivalentes:

if [ -e "$FILE" ]; then
if test -e "$FILE"; then

Estos también son equivalentes:

if [ -e "$FILE" ]; then echo exists; fi
[ -e "$FILE" ] && echo exists
test -e "$FILE" && echo exists

Y, la parte media de su secuencia de comandos hubiera sido mejor con un elif así:

if [ -f "$FILE" ]; then
    echo $FILE is a regular file
elif [ -d "$FILE" ]; then
    echo $FILE is a directory
fi

(También eliminé las comillas en el echo , ya que en este ejemplo son innecesarios)


Linux
  1. Manejo de errores en scripts Bash

  2. Verificando la sintaxis de PHP.

  3. Grep -v ¿Comportamiento inesperado?

  4. ¿Múltiples operadores lógicos, ((a || B) &&C), y "error de sintaxis cerca del token inesperado"?

  5. ¿Error wifi Wpa_supplicant?

¿Se recibió un paquete Tls con una longitud inesperada?

Error:inconsistencia inesperada; ¿Ejecutar Fsck manualmente?

Error de alquitrán:EOF inesperado en el archivo

Que es :-!! en código C?

error de sintaxis cerca del token inesperado ' - bash

¿Por qué este comando ldapadd se cierra con un error de sintaxis no válida?