18/08/25 20:06:08.85 A3V5N+C6.net
お約束
・Bourne ShellもしくはPOSIX準拠のsh可換シェル専用です
つまりシバンは#! /bin/shです。
特定のシェル(bash, zsh, ksh, (d)ash, yash, posh, fish, (t)csh)などの専用機能に依存する場合は明示しましょう。
OS X, GNU/Linuxユーザーは/bin/shの実体がbashなので*特に*注意(自覚なきbashism---シバンが#!/bin/shなのにbashに依存する構文を使っていませんか?)。
ただしDebian, Ubuntuなどでは/bin/shの実体はPOSIX sh互換のdashですのであまり気にしないでも大丈夫です。
FreeBSDユーザーは/bin/shの実体がashなので注意。
Solaris, OpenBSDユーザーは/bin/shの実体がkshなので注意。
csh/tcshでのシェルスクリプトは*まったく推奨しません*。このスレの対象外です。
(参考URL: URLリンク(www.speech-lab.org))
・POSIXに準拠しましょう
有用なリンクはURLリンク(en.wikipedia.org)にまとめられています。
最新の仕様はこちらへ: URLリンク(pubs.opengroup.org)
(左上の「Shell & Utilities」から各コマンドやファイルの仕様を参照することができます)
・Version 7 UNIXのsh(1)に一番近いのはOpenSolaris由来のHeirloom sh、次点でDebianなどに搭載されているDash shell
Heirloom sh: URLリンク(heirloom.sourceforge.net)
Dash shell: URLリンク(gondor.apana.org.au)
・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります
Manページや各種リンク(URLリンク(pubs.opengroup.org)など)を見ましょう。
apropos(1)ないしはman(1)の-kオプションでそれらしい単語による簡単な検索もできます。
・ワイルドカードは正規表現ではありません。
正規表現の話題はスレ違い(正規表現スレへ)
・シェルスクリプトのことをシェルってゆうな