done bash ubuntu dash-shell

bash - done - Redirector "<<<" en Ubuntu?



cat<< linux (3)

Estoy recibiendo este error

Error de sintaxis: redirección inesperada

En la linea:

if grep -q "^127.0.0." <<< "$RESULT"

¿Cómo puedo ejecutar esto en Ubuntu?


Funciona para mí en Ubuntu, si completo el bloque IF:

if grep -q "^127.0.0." <<< "$RESULT"; then echo ""; fi


<<< es un operador de redirección específico de bash (por lo que no es específico de Ubuntu). La documentation refiere a ella como una "Cadena aquí", una variante del "Documento aquí" .

3.6.7 Aquí cuerdas

Una variante de los documentos aquí, el formato es:

<<< palabra

La palabra se expande y se suministra al comando en su entrada estándar.

Un ejemplo simple:

$ cat <<< hello hello

Si está obteniendo un error, es probable que esté ejecutando el comando utilizando un shell que no sea bash. Si tiene #!/bin/sh en la parte superior de su script, intente cambiarlo a #!/bin/bash .

Si intenta usarlo con /bin/sh , probablemente asuma que << refiere a un "documento aquí", y luego ve un < inesperado después de eso, lo que genera el mensaje "Error de sintaxis: redirección inesperada" de que está viendo.

zsh y ksh también soportan esta sintaxis.


if grep -q "^127.0.0." <<< "$RESULT" then echo IF-THEN fi

Es una cosa específica de Bash. Si está utilizando un shell diferente compatible con bourne, intente:

if echo "$RESULT" | grep -q "^127.0.0." then echo IF-THEN fi