ich diesen FehlerRedirector "<<<" in Ubuntu?
Syntax error: redirection unexpected
in der Zeile:
if grep -q "^127.0.0." <<< "$RESULT"
Wie kann ich dies in Ubuntu laufen?
ich diesen FehlerRedirector "<<<" in Ubuntu?
Syntax error: redirection unexpected
in der Zeile:
if grep -q "^127.0.0." <<< "$RESULT"
Wie kann ich dies in Ubuntu laufen?
if grep -q "^127.0.0." <<< "$RESULT"
then
echo IF-THEN
fi
ist eine Bash-spezifische Sache. Wenn Sie eine andere bourne-kompatible Shell verwenden, versuchen Sie Folgendes:
if echo "$RESULT" | grep -q "^127.0.0."
then
echo IF-THEN
fi
gelöst, danke! – jmginer
Danke @Hal Das hat mein Problem auch gelöst .. –
Es funktioniert für mich auf Ubuntu, wenn ich Sie IF-Block ausführen:
if grep -q "^127.0.0." <<< "$RESULT"; then echo ""; fi
Was macht << Das kann etwas Neues für mich sein. –
Es leitet [hier-Strings] (http://linux.die.net/abs-guide/x15683.html) um. –
http://stackoverflow.com/questions/2462317/bash-syntax-error-redirection-unexpected – jmginer
<<<
ist ein bash-spezifische Umleitungsoperator. Die documentation bezieht sich darauf als "Here String", eine Variante der "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.
Ein einfaches Beispiel:
$ cat <<< hello
hello
Wenn Sie einen Fehler finden fühlt, ist es wahrscheinlich, dass Sie den Befehl mit einem Shell anders als bash sind ausführen. Wenn Sie oben im Skript #!/bin/sh
haben, versuchen Sie, es in #!/bin/bash
zu ändern.
Wenn Sie versuchen, es zu verwenden, um mit /bin/sh
, nimmt es wahrscheinlich die <<
zu einem „hier Dokument“ bezeichnet und sieht dann ein unerwartetes <
danach, in der resultierenden „Syntaxfehler: Umleitung unerwartet“ Nachricht, die du bist Sehen.
zsh und ksh unterstützen auch diese Syntax.
ksh unterstützt es. Strich nicht. –
Wäre es richtig zu sagen, es ist eine Kurzschrift für 'cat <(echo" hallo ")'? (Ich frage nur, um mein Verständnis zu vertiefen) –
@ Sridhar-Sarnobat: Nicht ganz. 'cat <<< hallo' ruft 'cat' ohne Argumente auf, wobei stdin von einer temporären Datei umgeleitet wird, die' hallo' gefolgt von einem Zeilenumbruch enthält. 'cat <(echo hallo)' ruft 'cat' mit einem einzigen Argument auf, welches der Name einer Pseudodatei ist, aus der die gleichen Daten gelesen werden können. 'cat' verhält sich ähnlich, ohne dass Argumente und stdin umadressiert werden, oder mit einem einzigen Argument, das eine Datei zum Lesen angibt, aber andere Befehle können sich anders verhalten. Zum Beispiel listet auf meinem System 'ls -l/proc/self/fd/0 <<< hallo' einen symbolischen Link zur temporären Datei auf, und' echo <(echo hallo) 'druckt'/dev/fd/63'. –
Ist keine Umleitung einer einzelnen, linken Klammer? < –
Der Code geht von links nach rechts. Eine Weile her, aber wenn ich mich richtig erinnere, ist es '>>" $ RESULT "', um es umzuleiten. –
Was möchten Sie mit diesem Befehl erreichen? Was ist der Wert von $ RESULT? –