このエラーが発生します
構文エラー:予期しないリダイレクト
行で:
if grep -q "^127.0.0." <<< "$RESULT"
これをUbuntuで実行するにはどうすればよいですか?
if grep -q "^127.0.0." <<< "$RESULT"
then
echo IF-THEN
fi
bash固有のものです。別のボーン互換シェルを使用している場合は、次を試してください。
if echo "$RESULT" | grep -q "^127.0.0."
then
echo IF-THEN
fi
<<<
はbash固有のリダイレクト演算子です(したがって、Ubuntuに固有ではありません)。 documentation は、それを "Here String"、 "Here Document" の変形と呼びます。
3.6.7ヒア文字列
ヒアドキュメントの変形で、形式は次のとおりです。
<<<ワード
Wordは展開され、標準入力でコマンドに提供されます。
簡単な例:
$ cat <<< hello
hello
エラーが発生した場合は、bash以外のシェルを使用してコマンドを実行している可能性があります。スクリプトの先頭に#!/bin/sh
がある場合は、それを#!/bin/bash
に変更してみてください。
/bin/sh
と一緒に使用しようとすると、おそらく<<
が「ヒアドキュメント」を参照していると想定し、その後に予期しない<
が表示され、「構文エラー:表示されている「予期しないリダイレクト」メッセージ。
zshとkshもこの構文をサポートしています。
私があなたにIFブロックを完了するならば、それはUbuntuで私のために働きます:
if grep -q "^127.0.0." <<< "$RESULT"; then echo ""; fi