OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

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

  • 困ってます
  • 質問No.164085
  • 閲覧数230
  • ありがとう数2
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 94% (50/53)

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

$ perl ファイル名

としないとスクリプトが実行できません。
実行ユーザーにパスはとおっています。
普通に
$ ファイル名
で実行するにはどうしたら良いかアドバイス頂けないでしょうか。
よろしくお願いいたします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル14

ベストアンサー率 50% (1122/2211)

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

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

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

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

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

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

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

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

#!/usr/local/bin/perl

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

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

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

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

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

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

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

お礼率 94% (50/53)

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

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

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

その他の回答 (全2件)

  • 回答No.1
レベル13

ベストアンサー率 37% (419/1115)

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

#!/usr/local/bin/perl

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

#パスは勿論ご使用のマシンに合わせて御確認下さい。
お礼コメント
bunnyLove

お礼率 94% (50/53)

naturalさんアドバイスありがとうございます。
#!/usr/local/bin/perl の記述と、実行権限はついていました。
また何かありましたらアドバイスお願いいたします。
投稿日時 - 2001-11-06 17:35:58
  • 回答No.3
レベル14

ベストアンサー率 50% (1122/2211)

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

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

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

とか。

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

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

ですかね。

# csh なら、setenv コマンドを使いましょう
お礼コメント
bunnyLove

お礼率 94% (50/53)

補足説明ありがとうございます。
やっぱりパスは通さないで./つきで実行するようにします。
いつもわかり易いアドバイスありがとうございます。
また何かの折りには宜しくお願いいたします。
投稿日時 - 2001-11-09 14:11:13
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ