Bashとスクリプト化

「スクリプト化」とは、複数のコマンドを並べて書き、「スクリプト」と呼ばれるテキスト・ファイルとして保存することにより処理を自動化する方法のことです。スクリプトを走らせる度に、あたかもTerminalでそれらコマンドを1つ1つ手で打ち込んでいるようにコマンドが実行されます。
スクリプトは、単に数個のコマンドをある特定の順番で実行するものから、複雑なタスクを処理するための高度なコードのかたまりまで、多岐にわたります。

index Bash

そもそもスクリプトはそれを解釈するシェルに大きく依存するため、まずはHaikuで使用されているBASHに精通する必要があります。BASHは広く使用されているシェルであるため、オンライン上に資料が豊富に存在します。すばらしいドキュメントの1つに、Johan Jansson氏のIntroduction to bash - a tutorial for bash under BeOSがあります。

index スクリプト化のための必読書

シェル内で作業するためのいくつかの基礎を学んだあとは、スクリプト化の世界にゆっくりと歩み出しましょう。このときも、本屋と同じくらい豊富なチュートリアルやリファレンスをオンライン上で見つけられるでしょう。Haikuにほぼピッタリの非常にすばらしい入門編に、オンラインで入手可能なScot Hacker氏によるBeOSの必読書のScripting Chapter (PDF, 900kb)があります。

indexHaikuにおけるスクリプト

Haikuでは、当然のことながらシステムもまたスクリプト化機能を使用しています。起動とシャット・ダウンはスクリプト化された手続きの典型です。はじめから定義されたこれら手続きは、特定のユーザー・スクリプトを用いてユーザーが拡張することができます。
もしこれらユーザー・スクリプトがまだ存在しない場合は、手動でこれらファイルを作成する必要があります。ユーザー・スクリプトが存在する場合は、処理を実行したい場所に必要なコマンドを追加するだけで済みます。

index UserBootscript

システムの起動プロセスが完了すると、/boot/home/config/boot/UserBootscriptが実行されます。例えば次のように、システムが起動した直後に毎回いくつかのプログラムを自動起動させることができます:

# LaunchBox を起動する
/boot/system/apps/LaunchBox &

# Workspaces アプレットを起動する
/boot/system/apps/Workspaces &

コマンドをバックグラウンド・プロセスとして実行するために、コマンドの末尾は"&"で終わらせることを覚えておいてください。さもなくばそのコマンドが完了するまで(この例では、起動したアプリケーションが再度閉じられるまで)スクリプトが停止してしまいます。

システムの起動時にアプリケーションを起動させるための、上記とは違うシンプルな方法の1つに、それらアプリケーションへのリンクを/boot/home/config/boot/launchディレクトリに置くという方法があります。この方法は、自動起動させたいアプリケーションを右クリックして、Create Linkにマウスカーソルを合わせたあと、前述のディレクトリへナビゲートすることで簡単に実現できます。

index UserShutdownScript

/boot/home/config/boot/UserShutdownScriptはシャットダウン・プロセスの最初のステップで実行されます。このスクリプトが0でない終了ステータスを返すと、シャットダウンは中断されます。

index UserShutdownFinishScript

/boot/home/config/boot/UserShutdownFinishScriptはシャットダウンの最終ステップで実行されます。このスクリプトが実行されるときには、システムの大部分が終了していることに注意してください。