試した環境
本題
通常のヒアドキュメントはドキュメント内の変数やコマンドを展開します。
$ cat << EOT pi = $(echo | awk '{print atan2(0, -1)}') EOT pi = 3.14159
終了文字列を指定する際に終了文字列をクォートすると展開されなくなります。
$ cat << 'EOT' pi = $(echo | awk '{print atan2(0, -1)}') EOT pi = $(echo | awk '{print atan2(0, -1)}')
終了する際の文字列はクォートしないことに注意します。
これを利用することでヒアドキュメントでシェルスクリプトが作りやすくなると思います。
$ cat << 'EOT' > pi.sh #!/bin/bash PI=$(echo | awk '{print atan2(0, -1)}') echo pi = ${PI} EOT $ chmod 755 pi.sh $ ./pi.sh pi = 3.14159