このシェルスクリプトの実行中にエラーが発生しました。

このシェルスクリプトの実行中にエラーが発生しました。

私が受け取るエラーは30行です。警告:ここでは文書は10行目にあり、ファイルの終わり(「wanted simple.sh」)で区切られています。このエラーはどういう意味ですか?これが10行目の様子です。

cat <<simple.sh | grep '^[^abc]$.*!$' >>Result

simple.shの出力をResultファイルに追加しようとしています。

答え1

文法

somecommand <<TAG

ここから文書を始めてください。ここで、ドキュメントはテキストブロックの入力リダイレクトです。 1行で単独で会うと、TAG文書の内容はここで終了します。たとえば、

cat <<END_TEXT
this is
some text
END_TEXT

タグは任意の単語である可能性があり、あなたの場合ではあり、simple.shシェルはここで文書を終了する単語を見つけることができないと文句を言います。

私の考えでは、あなたが言っていると思います。

cat simple.sh | grep ... >>Result

または

cat <simple.sh | grep ... >>Result

そうでなければ

grep ... simple.sh >>Result

また、正規表現^[^abc]$.*!$いいえ次のような行がないので一致します。! 後ろに行末。

関連情報