プロが教えるわが家の防犯対策術!

solaris8・perl5.6.1において、作成したperlのスクリプトを実行する時に、
頭にperlをつけて

$ perl ファイル名

としないとスクリプトが実行できません。
実行ユーザーにパスはとおっています。
普通に
$ ファイル名
で実行するにはどうしたら良いかアドバイス頂けないでしょうか。
よろしくお願いいたします。

A 回答 (3件)

> 実行ユーザーにパスはとおっています。



「実行ユーザにパスが通っている」という意味が分かりません。

スクリプトファイルを、シェルを指定せずに動作させる条件は、以下の三つです。

(1) スクリプトの第一行にシェルを指定する
(2) スクリプトファイルに、実行権限がついている
(3) スクリプトファイルがある場所に、パスが通っている

具体的には、以下の通り。

> $ perl ファイル名
>
> としないとスクリプトが実行できません。

とあるので、カレントディレクトリにあるスクリプトを実行しようとしているのだと
想像します。

(1) は、そのスクリプトファイルの第一行が以下のようになっていることです。

#!/usr/local/bin/perl

(Perl の実行モジュールが置かれている場所によって変わる可能性はあります。)

(2) は、chmod コマンドを使います。

$ chmod +x スクリプトファイル名

(3) は、env コマンドで確認してみましょう。多分、カレントディレクトリには、
PATH は通っていないはず。

(1) と (2) の条件を満たしているのであれば、

$ ./スクリプトファイル名

と、カレントディレクトリに有ることを明示的に指定して実行してみて下さい。

この回答への補足

こんにちは。いつもアドバイスありがとうございます。

>「実行ユーザにパスが通っている」という意味が分かりません。
すみません。実行権限があるのと、カレントにパスが通っているのを
ごちゃごちゃにしてしまいました。

ひとつずつ確認していくと、
(1)はOKです。
(2)も777の設定になっています。
(3)やっぱりあやしいのはここですよね。
でもenvコマンドで確認しても、ちゃんと
PATH=/usr/sbin/:/usr/bin:/usr/local/bin
と出てきます。
ちなみに./ファイル名とやると実行できるので、やはりパスの問題ですよね。。
もうちょっと調べてみます・・。(;_;)
ありがとうございました。

補足日時:2001/11/06 17:36
    • good
    • 0

> ちなみに./ファイル名とやると実行できるので、やはりパスの問題ですよね。



であれば、そのスクリプトファイルを置いてある所を PATH に含めればいいですね。
例えば、

$ PATH=${PATH}:/home/bunnyLove/script ; export PATH

とか。

カレントディレクトリを PATH に含めるのは、余り感心しませんが、もしやるのだったら

$ PATH=${PATH}:. ; export PATH

ですかね。

# csh なら、setenv コマンドを使いましょう
    • good
    • 0
この回答へのお礼

補足説明ありがとうございます。
やっぱりパスは通さないで./つきで実行するようにします。
いつもわかり易いアドバイスありがとうございます。
また何かの折りには宜しくお願いいたします。

お礼日時:2001/11/09 14:11

一応確認ですが…。


先頭行に、

#!/usr/local/bin/perl

等の記述はありますか?
また、スクリプトファイルには実行権は付いていますか?
御確認下さい。

#パスは勿論ご使用のマシンに合わせて御確認下さい。
    • good
    • 0
この回答へのお礼

naturalさんアドバイスありがとうございます。
#!/usr/local/bin/perl の記述と、実行権限はついていました。
また何かありましたらアドバイスお願いいたします。

お礼日時:2001/11/06 17:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!