▼スレッド
│
└◇850:ネットワーク上にあるPerlスクリプトの実行 [brad] 12/13 11:25
└◇852:Re:ネットワーク上にあるPerlスクリプトの実行 [な] 12/13 <
こんにちは。スレッド一覧
初めてここで質問させていただきます。
ネットワーク上にあるドライブにあるPerlスクリプトがあって、
bashからそれを実行するとき、フルパスで、しかもWinライクな
パスの指定の仕方をしなければ、動かないのです。
具体的には、Perlスクリプト名だけを打つと
$ txms
Can't open perl script "/cygdrive/l/LCMD/Lbin/txms": No such file or directory
当然パスは通っているのでファイルは見つけてますが、
動いてくれません。
で、フルパスで指定すると、
$ /cygdrive/l/LCMD/Lbin/txms
Can't open perl script "/cygdrive/l/LCMD/Lbin/txms": No such file or directory
やはり同じメッセージで動きません。そこで
$ L:/LCMD/Lbin/txms
と打つと動きます。スクリプトの第一行目には
#!C:\Perl/bin/perl
と書いてあります。ちなみにスクリプトファイルには
拡張子は書いておらず、スクリプトのあるディレクトリに
いくと、スクリプト名だけで動きます。
なにか、初歩的なミスをしているのでしょうか?
どうか、ご教授ください。
初歩的なミスですね。スレッド一覧
> と打つと動きます。スクリプトの第一行目には
>
> #!C:\Perl/bin/perl
>
> と書いてあります。ちなみにスクリプトファイルには
とのことですので、ActivePerlかなにか、Windowsネイティブの
perlでスクリプトを実行しようとしています。
Windowsネイティブのperlはcygwinで使う/cygdrive/..形式の
パスを理解できないので、スクリプトを見つけられず、
エラーが発生します。
対策としては、cygwinの/usr/bin/perlを呼ぶようにするか、
http://www.page.sannet.ne.jp/knabe/w3m/w3m.html
にあるようなラッパーを用意し、スクリプトからはラッパーを
呼ぶようにしておけば動作するはずです。