Bash とスクリプト処理

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

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 が実行されます。たとえば次のように、システムが起動した直後に毎回いくつかのプログラムを自動起動させることができます:

# ランチャーを起動する
/boot/system/apps/LaunchBox &

# ワークスペースアプレットを起動する
/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 はシャットダウンの最終ステップで実行されます。このスクリプトが実行されるときには、システムの大部分が終了していることに注意してください。