che sto ricevendo questo erroreRedirector "<<<" in Ubuntu?
Syntax error: redirection unexpected
nella linea:
if grep -q "^127.0.0." <<< "$RESULT"
Come posso fare funzionare questo in Ubuntu?
che sto ricevendo questo erroreRedirector "<<<" in Ubuntu?
Syntax error: redirection unexpected
nella linea:
if grep -q "^127.0.0." <<< "$RESULT"
Come posso fare funzionare questo in Ubuntu?
if grep -q "^127.0.0." <<< "$RESULT"
then
echo IF-THEN
fi
è una cosa specifica di Bash. Se si utilizza una shell compatibile bourne diversa, provare:
if echo "$RESULT" | grep -q "^127.0.0."
then
echo IF-THEN
fi
risolto, grazie! – jmginer
Grazie @Hal Questo ha risolto anche il mio problema .. –
Funziona per me su Ubuntu, se io completo blocco IF:
if grep -q "^127.0.0." <<< "$RESULT"; then echo ""; fi
Cosa fa <<< fare? Questo potrebbe essere qualcosa di nuovo per me. –
Reindirizza [here-string] (http://linux.die.net/abs-guide/x15683.html). –
http://stackoverflow.com/questions/2462317/bash-syntax-error-redirection-unexpected – jmginer
<<<
è un operatore di reindirizzamento specifici bash. Lo documentation si riferisce ad esso come "Here String", una variante di "Here Document".
3.6.7 Here Strings
A variant of here documents, the format is:
<<< word
The word is expanded and supplied to the command on its standard input.
Un semplice esempio:
$ cat <<< hello
hello
Se stai ricevendo un errore, è probabile che si sta eseguendo il comando utilizzando una shell diversa da bash. Se hai #!/bin/sh
nella parte superiore del tuo script, prova a cambiarlo in #!/bin/bash
.
Se si tenta di utilizzare con /bin/sh
, probabilmente assume il <<
si riferisce ad un "here document", e poi vede un inaspettato <
dopo che, con la conseguente "Errore di sintassi: reindirizzamento inaspettato" il messaggio che sei vedendo.
zsh e ksh supportano anche questa sintassi.
ksh lo supporta. il trattino no. –
Sarebbe corretto dire che è una scorciatoia per 'cat <(echo" hello ")'? (Sto solo chiedendo di approfondire la mia comprensione) –
@ Sridhar-Sarnobat: Non del tutto. 'cat <<< hello' invoca' cat' senza argomenti, con stdin reindirizzato da un file temporaneo contenente 'hello' seguito da una nuova riga. 'cat <(echo hello)' invoca 'cat' con un singolo argomento, che è il nome di uno pseudo file dal quale può leggere gli stessi dati. 'cat' si comporta in modo simile senza argomenti e lo stdin viene reindirizzato rispetto a un singolo argomento che nomina un file da leggere, ma altri comandi possono comportarsi diversamente. Per esempio, sul mio sistema 'ls -l/proc/self/fd/0 <<< hello' elenca un link simbolico al file temporaneo, e' echo <(echo hello) 'stampa'/dev/fd/63'. –
Non è il reindirizzamento una singola parentesi angolare sinistra? < –
Il codice va da sinistra a destra. È passato un po 'di tempo, ma se ricordo che è corretto è '>>" $ RISULTATO "' per reindirizzare. –
Cosa vuoi ottenere con quel comando? Qual è il valore di '$ RISULTATO'? –