• ベストアンサー

PATHいついて

ShellScriptの中で Perlを呼び出して動かそうとしています。 Command not foundと返ってきてしまいます。 ShellScriptの先頭には、 #! /bin/bash が入っています。 また、$PATHを見てみると、 bash: /usr/local/bin:/usr/bin:/bin:..... となっています。 後、何をチェックして、正せば良いのでしょうか? よろしくお願い致します。

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

  • ベストアンサー
回答No.3

コマンドのフルパスを調べるコマンドは which です。 which perl もしくは which perl.exe と入力してフルパスを調べて見て下さい。 問題のスクリプトの始めに which perl や echo $PATH を入れると、何が悪いのか分かるかも知れません。またスクリプトを実行するときに、 bash -x スクリプト・ファイル とすると実行されるコマンドが表示されるので、どこで Command not found が返されるのかが分かると思います。

noname#95859
質問者

お礼

大変遅くなりました。サジェスチョンありがとうございます。結局、よく分かっている人に聞いて、解決しました。自分ひとりでは、まだだめです。でも、がんばっていきます。ありがとうございました。

その他の回答 (2)

  • owlcity
  • ベストアンサー率56% (45/79)
回答No.2

cygwinとのことなので、自信ないですがシェルスクリプトに perl.exeあるいは/bin/perl.exe と書き込んでみたらうまくいくかもしれません。 (あと、大文字小文字の区別があるのかもしれません。) (ところで、私の理解や認識が低いのかもしれませんが、cygwinってSolarisと関係あるんですか? SystemVつながり? 質問内容やタイトルにcygwin環境であることをはっきり明記の上、別のカテゴリで再質問したら 詳しい方からのお返事がもらいやすくなると思います。)

  • owlcity
  • ベストアンサー率56% (45/79)
回答No.1

bashのPATH変数にperlの実行ファイルのディレクトリが追加されていないものと思われます。 locate bin/perl とコマンド入力し、perlの位置を確認の上、 PATH変数に追加してください。(perlの位置の確認方法の具体例は後述。) PATH変数と追加方法については↓をご参考に。 http://park15.wakwak.com/~unixlife/solaris/start-solaris9-0403-p3.html bashのPATH変数を変更したくない(変更するのが面倒)という場合には、シェルスクリプト上にperlと書くのではなくでフルパスを書くと動作します。(単にperlとするのではなく、/usr/local/bin/perlなどと書くということです。) 私の手元の環境(Solarisではないですが)では たとえば % locate bin/perl とコマンド入力すると /usr/bin/perl /usr/bin/perl5 /usr/local/bin/perl /usr/local/bin/perl-after-upgrade /usr/local/bin/perl5 /usr/local/bin/perl5.8.7 /usr/local/bin/perlbug /usr/local/bin/perlcc /usr/local/bin/perldoc /usr/local/bin/perlivp と出力されますので、perlの実行ファイルらしき /usr/local/bin/perlか/usr/bin/perlを書き込みます。 この場合、perlの位置は/usr/local/binや/usr/binになります。おそらく、質問者様の環境では、これらのディレクトリがPATH変数に追加されていないんですよ。 (なお、SolarisにPerlそのものがインストールされていないのでしたら、新たにインストールする必要があります。)

noname#95859
質問者

お礼

大変遅くなりました。サジェスチョンありがとうございます。結局、よく分かっている人に聞いて、解決しました。自分ひとりでは、まだだめです。でも、がんばっていきます。ありがとうございました。

noname#95859
質問者

補足

ありがとうございます。実はcygwin環境なのですが。 Perl.exeの場所は、/binの中です。これは、/homeと同列です。 $ locate bin/perl とコマンドを打っても、 locate: /usr/var/locatedb: No such file or directory と返ってきます。 また、コマンドプロンプトで perl -v で、それなりに返してきますので、 パスはOKではないかと思います。 結論、まだうまく行っていません。

関連するQ&A