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