当前位置: 首页>>技术教程>>正文


bash – 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-specific东西。如果您使用其他bourne-compatable Shell,请尝试:

if echo "$RESULT" | grep -q "^127.0.0."
then
    echo IF-THEN
fi

次佳思路

<<<是bash-specific重定向运算符(因此它并不特定于Ubuntu)。 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一起使用,则可能假定<<引用了”here document”,然后看到意外的<,这之后,您将看到“语法错误:意外重定向”消息。

zsh和ksh也支持此语法。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8971.html,未经允许,请勿转载。