我得到這個錯誤在Ubuntu中重定向器「<<<」?
Syntax error: redirection unexpected
在該行:
if grep -q "^127.0.0." <<< "$RESULT"
我如何在Ubuntu上運行呢?
我得到這個錯誤在Ubuntu中重定向器「<<<」?
Syntax error: redirection unexpected
在該行:
if grep -q "^127.0.0." <<< "$RESULT"
我如何在Ubuntu上運行呢?
if grep -q "^127.0.0." <<< "$RESULT"
then
echo IF-THEN
fi
是Bash特定的東西。如果您使用的是不同的Bourne-Compaatable外殼,請嘗試:
if echo "$RESULT" | grep -q "^127.0.0."
then
echo IF-THEN
fi
解決了,謝謝! – jmginer
謝謝@Hal這也解決了我的問題。 –
它爲我在Ubuntu上,如果我完成你IF塊:
if grep -q "^127.0.0." <<< "$RESULT"; then echo ""; fi
<<<做什麼?這對我來說可能是新事物。 –
它重定向[here-strings](http://linux.die.net/abs-guide/x15683.html)。 –
http://stackoverflow.com/questions/2462317/bash-syntax-error-redirection-unexpected – jmginer
<<<
是bash的特定重定向操作。 documentation將其稱爲「Here String」,即"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.
一個簡單的例子:
$ cat <<< hello
hello
如果您收到一個錯誤,很可能是因爲您使用的是bash的其他一個shell執行命令。如果您的腳本頂部有#!/bin/sh
,請嘗試將其更改爲#!/bin/bash
。
如果您嘗試與/bin/sh
使用它,它可能假定<<
是指「在這裏的文檔」,然後看到後意外<
,導致「語法錯誤:重定向意外」的消息,你是看到。
zsh和ksh也支持這種語法。
ksh支持它。破折號不。 –
準確地說它是'cat <(echo「hello」)''的簡寫形式嗎? (我只是想要加深我的理解) –
@ Sridhar-Sarnobat:不完全。 'cat <<< hello'調用沒有參數的'cat',stdin從包含'hello'的臨時文件重定向到一個換行符。 'cat <(echo hello)'用一個參數調用'cat',它是一個可以從中讀取相同數據的僞文件的名稱。 'cat'的行爲類似,沒有參數,標準輸入重定向與用單個參數命名要讀取的文件,但其他命令的行爲可能不同。例如,在我的系統上,'ls -l/proc/self/fd/0 <<< hello'列出臨時文件的符號鏈接,'echo <(echo hello)'打印'/ dev/fd/63'。 –
是不是重定向單個左尖括號? < –
代碼從左到右。過了一段時間,但如果我記得正確的話,就是用'>>「$ RESULT」'重定向它。 – 2013-04-16 19:15:35
你想用這個命令實現什麼? '$ RESULT'的價值是什麼? –