我收到此错误
语法错误:重定向意外
在该行:
if grep -q "^127.0.0." <<< "$RESULT"
我如何在Ubuntu中运行它?
答案 0 :(得分:26)
<<<
是一个特定于bash的重定向运算符(因此它并不特定于Ubuntu)。 documentation将其称为&#34; Here String&#34;,"Here Document"的变体。
3.6.7此处字符串
此处文件的变体,格式为:
&LT;&LT;&LT;字
扩展字并将其提供给命令 标准输入。
一个简单的例子:
$ cat <<< hello
hello
如果您收到错误,可能是您使用bash以外的shell执行命令。如果您的脚本顶部有#!/bin/sh
,请尝试将其更改为#!/bin/bash
。
如果您尝试将其与/bin/sh
一起使用,则可能假定<<
引用了&#34;此处的文档&#34;,然后在此之后看到意外的<
,导致&#34;语法错误:重定向意外&#34;你正在看的消息。
zsh和ksh也支持这种语法。
答案 1 :(得分:21)
if grep -q "^127.0.0." <<< "$RESULT"
then
echo IF-THEN
fi
是特定于Bash的东西。如果您使用的是另一个与bourne兼容的shell,请尝试:
if echo "$RESULT" | grep -q "^127.0.0."
then
echo IF-THEN
fi
答案 2 :(得分:2)
如果我完成了IF阻止,它对我在Ubuntu上有用:
if grep -q "^127.0.0." <<< "$RESULT"; then echo ""; fi