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