読者です 読者をやめる 読者になる 読者になる

さわだのノート

書籍のお仕事に役立つかもしれない思いつきを記録しています。

RSS: 記事の更新情報 Rss Feed

スクリプトの実行手順をおさらい

PythonPerlシェルスクリプトなどのスクリプトファイルは、シェバング行を書いておくとスクリプトファイルを直接実行することができるそうです。

シェバング行というのは、

#!/usr/bin/perl

みたいなのを書いている行のことですね。スクリプトファイルの1行目に書きます。これを書いておくと、

$ perl test.pl

と書いていたのが、

$ ./test.pl

でスクリプトファイルを実行できるようになるわけです。
「./」をスクリプトファイルの前に入れないと、スクリプトは実行されません。

しかし、実際に試してみるとエラーが表示されてしまいます。

$ ./test.pl
-bash: ./test.pl: Permission denied

これは、ファイルの属性が実行可能になっていないからなんですね。ファイルの属性はパーミションとも呼ばれるようです。ファイルのパーミッションは「ls -l」コマンドで確認できます。

$ ls -l test.pl
-rw-r--r--  1 t_sawada  staff  630 12 26 23:47 test.pl

「-rw-r--r--」というやつがファイルの属性を示しています。自分に関係があるのは、左から数えて2〜4までの項目です。「r」「w」「x」という3つの項目が、パーミションを表しています。

それぞれどんな意味があるのかというと、

Mode 名称 説明
r リード ファイルを読み出し可能、ディレクトリ内容を参照可能
w ライト ファイルやディレクトリに書き込み可能
x 実行 ファイルを実行可能、ディレクトリに移動可能

chmod - Wikipedia

とのこと。Wikipediaに書いていました。

さっきの「-rw-r--r--」を見ると、「実行」のパーミッションが付与されていませんね。だから実行できなかったようです。
パーミッションの設定は、「chmod」コマンドで行います。

$ chmod u+x test.pl

ユーザーに(User)に実行(x)を付与(+)とでも覚えておくとよさそうですね。
再度スクリプトを実行してみます。

$ ./test.pl
Hello World!

できました!