RedHat系Linuxの起動ファイル |
YAMAMORI Takenori ●yamamori |
/bin/shが実際にはbashへのシンボリックリンクになっているLinuxはもちろん, そのほかのOSにおいても,PC UNIXの移植版の/bin/sh上では, 「export NAME=value」といった拡張文法が使える場合があります. これは,csh系での「setenv NAME value」に相当します. しかし,この書き方は少なくともSolarisの/bin/shでは通用しません.
筆者としては,少なくとも,rcスクリプトのようなシステムにとって重要な シェルスクリプトにおいては,シェルの拡張文法には依存しないようにし, なるべく移植性を高く記述した方がよいと考えています. 「NAME=value; export NAME」と2段階に書くことを面倒がらずに, 基本を覚えた方がよいでしょう.
同様に,コマンドの標準出力の文字列を引数に置換するための 「` `」(バッククオート)について, たとえば,「`pwd`」と書くべきところを「$(pwd)」とも書けるシェルもあります. これも同様の理由で,少なくともrcスクリプトにおいては 「`pwd`」と書いた方がよいでしょう.