OSS実行するにはパスが必要:ステップ・バイ・ステップ・シェルスクリプト(2)シェルスクリプトを単に作っただけでは、それを実行することはできません。適切なパスを設定し、実行権を与える必要があります。これらはそれぞれLinuxの基本的な操作手順になりますので、ここでしっかりおさえておくことにしましょう。公開[さかいひろあき,@IT]シェルスクリプトを作成するLinuxを使っていると複数のコマンドを連続して、しかも特定の条件付きで起動したくなることがあります。あるコマンドを実行後、次のコマンドを実行し、うまく実行された場合、されなかった場合に処理を分けて......などなど。このような場合に使われるのがシェルスクリプトです。今回はこのシェルスクリプトを実際に作ってみましょう。基本的なシェルスクリプトを作成してみます。エディタでファイルを編集し、以下のようなファイルを作成してください。World"このたった1行だけです。ファイル名を「helloworld」として保存します。エディタを使わずとも、プロンプトから以下のようなコマンドを実行してファイルを作ってもいいかもしれません。helloworld先頭のドル($)は、コマンドラインからの実行を意味していますので、実際に入力する必要はありません。シングルクオーテーション(')やダブルクオーテーション(")が並んでいてなにやら複雑ですが、シングルクオーテーションの中身を「helloworld」というファイルに出力しているだけです。ファイルが作成されたでしょうか?ファイルに実行権を付与する作成されたファイルはそのままでは実行できません。helloworldこれでこのファイル「helloworld」に実行権がつきました。World”という文字が表示されましたので、実行が成功しました。うまく実行されない人は以下のようにやってみてください。うまく実行されないときはlsコマンドで、作成したファイル名と実行権を確認してみてください。なっているところがポイントで、rw-r--r--となっていたりしてxが入っていないと実行されません。一度前述のchmodコマンドを実行してみてください。MS-DOSの場合は実行ファイルは拡張子.batという決まりがありましたが、Linuxは実行権さえついていればファイル名に制限はありません。実行パスの指定ついでに、自分がどこのディレクトリにいても(カレントディレクトリがどこであっても)自分で作成したシェルスクリプトを実行できるようにしましょう。ホームディレクトリに、自分で作ったコマンドを格納しておくディレクトリを作成し、そこへ実行コマンドを移動させます。ここではtoolsという名前でディレクトリを作成し、そこへ移動させます。toolsそしてパスの設定を変更し、上記ディレクトリを含むようにしておきます。PATH=~/tools:$PATHMS-DOSにはパスという概念がありましたが、Windowsユーザにはなじみが薄いかもしれません。パスとは、実行コマンドが格納されているディレクトリを登録しておくものです。登録しておくと、そのコマンドを実行するときにどこからでも呼び出すことができます。パスの指定は上記の例のように、指定したいディレクトリ名を(:)コロンで区切って登録します。このように2行で指定する必要があります。このようにしてしまうと、すでに指定されているディレクトリがパスからなくなってしまうので、基本コマンド(viやlsなど)が実行できなくなってしまいます。その場合でもフルパス(/bin/viや/bin/ls)を指定することでコマンドを実行することはできます。パスを設定したら、その動作を確認してみましょう。さきほどhelloworldは移動したため、もうホームディレクトリの下にはありません(toolsの下にあります)。そこで、ホームディレクトリからhelloworldを実行してみます。自分のホームディレクトリをあらわします。パス上に登録されているかどうかは、whichまたはtypeコマンドで確認することができます。/home/redhat/tools/helloworld正しく設定されていれば、上記のようにさきほど登録したシェルスクリプトがフルパスで表示されます。表示されない場合は、もう一度パスの設定を確認してみてください。PATH=~/tools:$PATHを1行追加しておきましょう。することによりログインするたびに自動的にパスの設定が行われますので、次回からなにもしなくても、どのディレクトリにいても自分が作ったファイルを実行できることになります。./helloworldなら実行できた人もいると思います。それは、パスにカレントディレクトリが含まれていないからです。カレントディレクトリがパスに含まれていれば、./hellowolrdと書かなくとも実行されます。好みにもよりますが、カレントディレクトリの状態によって実行されるコマンドが変わることを避けるため、UNIXの世界ではパスにカレントディレクトリを含めないことが多いようです。これでシェルスクリプトを作成し、実行する方法と環境が整いました。次回からは、シェルスクリプトの基本機能や、よく使われる機能について解説していきたいと思います。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。