Bash とスクリプト処理

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

index Bash

スクリプトはそれらを解釈するシェルに必然的に大きく依存するため、まずは Haiku で使用されている BASH に慣れる必要があります。BASH は広く使用されているシェルなので、オンライン上に資料が豊富に存在します。すばらしいドキュメントの 1 つに、Johan Jansson 氏の Introduction to bash - a tutorial for bash under BeOS があります。
Bash Reference Manual (PDF, 720 KiB)は、詳細に興味を持つには良いリソースです。

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

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

indexHaiku でのスクリプト

以前、Haiku には起動用とシャットダウン用のスクリプトがありました。今は代わりに launch_daemon を使用しています。しかし、ユーザーはまだ特定のユーザースクリプトを使ってこのプロセスを増やせます。それらがすでに存在しない場合は、ユーザー自身で必要なファイルを作成する必要があります。ほかに、コマンドを実行するプロセス内に単純に追加する方法もあります。

index UserBootscript

システムの起動プロセスが完了すると、/boot/home/config/settings/boot/UserBootscript が実行されます。たとえば次のように、システムの起動ごとに自動起動するいくつかのプログラムを立ち上げられます:

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

# ワークスペースアプレットを起動する
/boot/system/apps/Workspaces &

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

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

index UserShutdownScript - まだ動作しません

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

index UserShutdownFinishScript - まだ動作しません

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