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