区切り記号のないこちらのドキュメント

区切り記号のないこちらのドキュメント

存在するこの投稿、Stephenの答えは、次のコードを示しています。

cat <<-"EOF1" >> myPath/myFile.append
if ! grep -F -q -f myPath/myFile{.append,}; then
    cat myPath/myFile.append >> myPath/myFile
fi

ここに文書に区切り文字がないのはなぜですか?

ベストアンサー1

私がテストしたすべてのシェルはドキュメントをよく読んでおり、終了者がいなくてもドキュメントはファイルの最後で終わりました。 Bashはこれについて警告しますが、busybox / dash / kshとzshはそれを自動的に処理します。

例えば

$ cat heredoctest.sh
#!/bin/bash
cat -n <<EOF
foo
bar
$ bash heredoctest.sh
heredoctest.sh: line 4: warning: here-document at line 2 delimited by end-of-file (wanted `EOF')
     1  foo
     2  bar

しかし、提供された特定のコード例はバグのようです。書かれたようにifステートメントだけを追加するので、myPath/myFile.appendあまり役に立ちません。 here-docコンテンツとターミネーターcatが間に消えたようですif

おすすめ記事