我收到此错误
语法错误:重定向意外
在行中:
if grep -q "^127.0.0." <<< "$RESULT"
我如何在 Ubuntu 中运行它?
我收到此错误
语法错误:重定向意外
在行中:
if grep -q "^127.0.0." <<< "$RESULT"
我如何在 Ubuntu 中运行它?
<<<
是特定于 bash 的重定向运算符(因此它不是特定于 Ubuntu)。文档将其称为“Here String”,是“Here Document”的变体。
3.6.7 这里的字符串
这里文档的一种变体,格式为:
<<< 字
该词被扩展并提供给其标准输入上的命令。
一个简单的例子:
$ cat <<< hello
hello
如果遇到错误,很可能是您使用 bash 以外的 shell 执行命令。如果您#!/bin/sh
的脚本顶部有,请尝试将其更改为#!/bin/bash
.
如果您尝试将它与 一起使用/bin/sh
,它可能会假定<<
引用“此处的文档”,然后在此之后看到意外<
,从而导致您看到“语法错误:重定向意外”消息。
zsh 和 ksh 也支持这种语法。
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
如果我完成你的 IF 块,它在 Ubuntu 上对我有用:
if grep -q "^127.0.0." <<< "$RESULT"; then echo ""; fi