- ベストアンサー
perlのcdについて
- perlのcdについての質問です。
- terapadでプログラムを呼び出せません。ホームディレクトリにファイルを置く必要があるのか調べましたが、分かりません。
- terapadのプログラムに#!/usr/bin/perlと入力しているのですが、これは何の意味なのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ですから、Cygwin動作中は ホームディレクトリ(bashを起動してログインしたディレクトリ)は、 Cygwin表記で /home/ユーザー名, Windows表記で Cygwinのインストールしたディレクトリ\home\ユーザー名です。 「デスクトップとか、マイドキュメントとかではありません」 > **@room ~ > $ ls > これがホームディレクトリ(~)でlsを実行した結果です。何もありません。 (正確には、.で始まるファイルやディレクトリがあるかもしれませんが) > $ cd cheminf ホームディレクトリの下になにも無いのですから、移動などできません。よって > bash: cd: cheminf: No such file or directory というエラーになります。 簡単な対処は、デスクトップにあるcheminfディレクトリをホームディレクトリの下に移動してくることです。
その他の回答 (2)
- kuroizell
- ベストアンサー率55% (95/170)
WindowsでPerlやるなら、 ActivePerlかStrawbery Perlをインストールした方が 簡単で分かりやすいですよ。 一行目はshebangといって、 「このコードを/usr/binディレクトリにあるperlコマンドで実行します」という宣言です。 以下余談。 perlコマンドの場所が/usr/local/binディレクトリの場合もありますので、 差異を吸収するために #!/usr/bin/env perl としている人も多いのですが、 稀に「envコマンドが入っていない」という落とし穴も… ちなみにWindowsでは拡張子で関連付けられるので、私はシバンを省略してます。
補足
Active perlはインストールしています。 そのコードはシェバングっていうんですね!詳しい説明ありがとうございます!
- kmee
- ベストアンサー率55% (1857/3366)
・ファイルをどこに置いて ・どんなコマンドラインで実行したか ・そうしたら、どんな結果になったか。エラーなら具体的にどんなメッセージが表示されたのか というあたりが無いと判断できません。 置く場所は、大抵は関係ありません。(外部のファイルを参照するなどで、制限があるケースもありますが) 置いた場所にあるスクリプトにアクセスできればいいはずです。 CygwinとWIndowsとではディレクトリ構造が違います。 Cygwinの / (ルート) はWindowsでのインストールディレクトリ(標準では C:\cygwin )になります。 ホームディレクトリは /home/ユーザー名 (Windowsの C:\cygwin\home\ユーザー名 )になります。 TerapadはWindowsのアプリなので、Windowsのディレクトリ名を使います。それをCygwinから呼びだすにはCygwin のパスで指定する必要があります。 #!については「シェバング」で検索してみてください。
補足
入力は **@room ~ $ ls **@room ~ $ cd cheminf bash: cd: cheminf: No such file or directory と入力しました。 cheminfのファイルはデスクトップに置いています。perlの動作のファイルはCドライブの中に全部あるみたいです。 lsの時点でファイルが認識されていないみたいなのですが、学校でやったときはそのままやっても適応されていたので、何が違うのかさっぱりです…。
お礼
正直分からないことだらけなので、基礎から本でも探して勉強してみます。どうもありがとうございました。