dostaję ten błądRedirector "<<<" w Ubuntu?
Syntax error: redirection unexpected
w linii:
if grep -q "^127.0.0." <<< "$RESULT"
Jak mogę uruchomić to w Ubuntu?
dostaję ten błądRedirector "<<<" w Ubuntu?
Syntax error: redirection unexpected
w linii:
if grep -q "^127.0.0." <<< "$RESULT"
Jak mogę uruchomić to w Ubuntu?
if grep -q "^127.0.0." <<< "$RESULT"
then
echo IF-THEN
fi
jest rzeczą charakterystyczną dla gry Bash. Jeśli używasz innej powłoki kompatybilnej z firmą Bourne, spróbuj:
if echo "$RESULT" | grep -q "^127.0.0."
then
echo IF-THEN
fi
rozwiązany, dzięki! – jmginer
Dzięki @Hal To również rozwiązało mój problem .. –
To działa dla mnie na Ubuntu, jeśli skończę, jeśli blok:
if grep -q "^127.0.0." <<< "$RESULT"; then echo ""; fi
Co robi << To może być dla mnie coś nowego. –
Przekierowuje [ciągi-znaków] (http://linux.die.net/abs-guide/x15683.html). –
http://stackoverflow.com/questions/2462317/bash-syntax-error-redirection-nexpected – jmginer
<<<
jest operatorem przekierowania bash specyficzne. documentation odnosi się do niego jako "tutaj ciąg", wariant "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.
Prosty przykład:
$ cat <<< hello
hello
Jeśli otrzymujesz błąd, to jest prawdopodobne, że jesteś wykonywania polecenia za pomocą powłoki innej niż bash. Jeśli masz numer #!/bin/sh
u góry skryptu, spróbuj zmienić go na #!/bin/bash
.
Jeśli spróbujesz użyć go /bin/sh
, to prawdopodobnie zakłada <<
odnosi się do „dokumentu tutaj”, a następnie widzi nieoczekiwany <
potem, w wyniku czego „błąd składni: przekierowanie nieoczekiwane” wiadomość, że jesteś widzenie.
zsh i ksh również obsługują tę składnię.
ksh obsługuje to. myślnik nie. –
Czy można powiedzieć, że jest skrótem dla 'cat <(echo" hello ")'? (Chcę tylko pogłębić moje zrozumienie) –
@ Sridhar-Sarnobat: Niezupełnie. 'cat <<< hello' wywołuje' cat' bez argumentów, ze stdin przekierowany z pliku tymczasowego zawierającego 'hello', po którym następuje znak nowej linii. 'cat <(echo hello)' wywołuje 'cat' z pojedynczym argumentem, który jest nazwą pseudo-pliku, z którego może odczytać te same dane. 'cat' zachowuje się podobnie bez żadnych argumentów i stdin przekierowanych vs. z pojedynczym argumentem nazywania pliku do odczytania, ale inne polecenia mogą zachowywać się inaczej. Na przykład w moim systemie 'ls -l/proc/self/fd/0 <<< hello' wyświetla dowiązanie symboliczne do pliku tymczasowego, a' echo <(echo hello) 'wypisuje'/dev/fd/63'. –
Czy przekierowanie nie jest pojedynczym, lewym wspornikiem kątowym? < –
Kod przechodzi od lewej do prawej. Minęło trochę czasu, ale jeśli dobrze pamiętam, to '>>" $ WYNIK "', aby go przekierować. –
Co chcesz osiągnąć za pomocą tego polecenia? Jaka jest wartość "$ WYNIK"? –