忍者ブログ

[PR]

2025年01月18日 ()
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

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
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字