A君のたわごと ----------------------------------------------------------------------------- この物語はフィクションであり、実在するいかなる人物、団体名とも関係ない ----------------------------------------------------------------------------- 「49」 「ポータブルシェルプログラミング」 ありがちな題であり本になっていそうであるが書籍は無さそうである Shellの違いを示したドキュメントがWeb上にあるがプログラミングに関するものは 見つけられなかった。 http://www.faqs.org/faqs/unix-faq/shell/shell-differences/ 最近のプログラミング環境は単一化されていて移植性のことはあまり 考えていないようである。(64Bit環境ではいろいろ問題が出るのに) シェルスクリプトはたいていのOSに入っている/bin/shで作っている しかし最近はbashなど多様なShellによるスクリプトが増えてきている。 Linuxしか使ったことのない人が増えているので仕方がないのかもしれない。 *BSD,Solaris.Linuxなど、いくつかのOSを相手にShellScriptを書いているが、 どのOSでも動作するように書くのは以外に難しい。 一番機能が少なそうなSolarisの/bin/shでスクリプトを書いている。 この方法はたいていうまくいく。ただpfkshのようで本来のBSHでないので 若干不便なことがある。 基本的なコマンドの動作の違いにも戸惑うことがある。 これは結構有名な話だと思うがSolarisのechoコマンドは独特で メッセージを改行しないようにするには echo -nではなく 文字の最後に"\c"を付ける必要がある /usr/ucb/echo なら echo -n でOKである。実はSolarisの/usr/ucb 以下のコマンドは意外に便利に使える が将来のリリースでは廃止されるようである。 これ以外でもwhile read data do xxx done < file のような使い方をするとLoop内変数がLoop外で使えないことがあり ちょっと悩むことがある。 しかも製品に付属するスクリプトやサンプルがbashの形式だったりすると??? と思ってしまう。 一番問題なのはbashスクリプトで、けっこう癖があり本来の/bin/shでは 動かないものが増えてきている。 少し手直しすれは動くものから、大幅に手を入れる必要があるものまで 雑多な感じである。 Webページを見てもShellの動作原理を書いているページは無く断片的な情報しか 見つけられない。”こうすれば動いた”的な情報ばかりである。 即答を求める人たちが増えていてじっくり考えることが無くなっているのかも 「そういう時代よね」というCMのセリフを思い出す。 21世紀になって体系的な解説をした本が本当に少なくなってきていると感じている。 もう本物のBSHには出会えないかもしれない。(AIX、HP-UXは未確認) かつての名著 詳解UNIXプログラミングのShell版が欲しくなるこの頃である。 この本も2000年に発行されているがそれ以降はこの手の本が出ていない。