here document
2008年09月27日 (linux)
数行の簡単なスクリプトやファイルならヒアドキュメントで作るのが便利である.まずは最小構成のスクリプトをヒアドキュメントで書くと.
% cat <<EOF >HEREDOC > #!/bin/sh > > #test script > > echo "testes" > EOF
出力先ファイルHEREDOCの中身は
#!/bin/sh #test script echo "testes"
のようになる.問題なさそうだ.
次に変数やコマンド展開などの入ったスクリプトをヒアドキュメントで書くと.
% cat <<EOF >HEREDOC2 > #!/bin/sh > > #test script 2 > > for i in `ls` > do > cat -n $i > done > EOF
出力先ファイルHEREDOC2の中身は
#!/bin/sh #test script 2 for i in . .. do cat -n done
`ls -a`と$iが展開されている.
これを防ぐために
% cat <<EOF >HEREDOC2 > #!/bin/sh > > #test script 2 > > for i in \`ls\` > do > cat -n \$i > done > EOF
のようにバックスラッシュでエスケープすることもできるが・・・
% cat <<'EOF' >HEREDOC2 > #!/bin/sh > > #test script 2 > > for i in `ls` > do > cat -n $i > done > EOF
とすると展開されないのでより賢い&スクリプトの可読性が高い.
PR
Comment