我得到这个错误在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'的价值是什么? –