• ベストアンサー

頭にperlとつけないと実行できない

solaris8・perl5.6.1において、作成したperlのスクリプトを実行する時に、 頭にperlをつけて $ perl ファイル名 としないとスクリプトが実行できません。 実行ユーザーにパスはとおっています。 普通に $ ファイル名 で実行するにはどうしたら良いかアドバイス頂けないでしょうか。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

> 実行ユーザーにパスはとおっています。 「実行ユーザにパスが通っている」という意味が分かりません。 スクリプトファイルを、シェルを指定せずに動作させる条件は、以下の三つです。 (1) スクリプトの第一行にシェルを指定する (2) スクリプトファイルに、実行権限がついている (3) スクリプトファイルがある場所に、パスが通っている 具体的には、以下の通り。 > $ perl ファイル名 > > としないとスクリプトが実行できません。 とあるので、カレントディレクトリにあるスクリプトを実行しようとしているのだと 想像します。 (1) は、そのスクリプトファイルの第一行が以下のようになっていることです。 #!/usr/local/bin/perl (Perl の実行モジュールが置かれている場所によって変わる可能性はあります。) (2) は、chmod コマンドを使います。 $ chmod +x スクリプトファイル名 (3) は、env コマンドで確認してみましょう。多分、カレントディレクトリには、 PATH は通っていないはず。 (1) と (2) の条件を満たしているのであれば、 $ ./スクリプトファイル名 と、カレントディレクトリに有ることを明示的に指定して実行してみて下さい。

bunnyLove
質問者

補足

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

その他の回答 (2)

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.3

> ちなみに./ファイル名とやると実行できるので、やはりパスの問題ですよね。 であれば、そのスクリプトファイルを置いてある所を PATH に含めればいいですね。 例えば、 $ PATH=${PATH}:/home/bunnyLove/script ; export PATH とか。 カレントディレクトリを PATH に含めるのは、余り感心しませんが、もしやるのだったら $ PATH=${PATH}:. ; export PATH ですかね。 # csh なら、setenv コマンドを使いましょう

bunnyLove
質問者

お礼

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

  • natural
  • ベストアンサー率37% (419/1115)
回答No.1

一応確認ですが…。 先頭行に、 #!/usr/local/bin/perl 等の記述はありますか? また、スクリプトファイルには実行権は付いていますか? 御確認下さい。 #パスは勿論ご使用のマシンに合わせて御確認下さい。

bunnyLove
質問者

お礼

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

関連するQ&A