• ベストアンサー

cygwinでtcshを起動時に使いたい

Cygwinで、起動時にtcshを使いたいのですが、Cygwin.Batの最後にtcsh -l を記述して起動したあと、コマンドを入力すると、links (y|n|e|a) という確認メッセージのようなものがでて実行できません。 tcsh コマンド名 と入力すると実行できるようなのですが。。あと、tcsh起動時のエイリアスの設定方法がわかれば教えていただけませんか?

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10359)
回答No.3

#1,#2です。 補足の意味がよくわからないのですが、#2を読んだ上で書いているということは、 (1) スクリプトのあるディレクトリがpathに登録されている (2) 実行可能ビットも立っている(ls -l での表示で属性が rwx~ のようになっている) (3) 1行目に #! /bin/tcsh 等と書いてある にもかかわらず、スクリプト名だけで実行できないということなんでしょうか? 1行目にはtcshの実際のパス名を書いてますか?tcshのありかはシステムによって違うので、 /bin/tcsh とは限りません。 which tcsh でtcshのありかがわかります。 また、スクリプト名はlinksに似ているんですか?似てないんですか?

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4900/10359)
回答No.2

>CORRECT>links (y|n|e|a)? これはtcshのタイプミス自動修正機能です。これが出るということは、PATHの通ったディレクトリにlinksというコマンドが存在して、linsk のようにコマンドとして存在しないがlinksに似た単語をタイプした時に、「正しくはlinksじゃないのか?」と聞いてきたわけです。y を押すと links コマンドが実行され、n を押すとlinsk を実行しようとしてコマンドが無いというエラーになります。e を押すと再度行編集、a だと実行中止です。 tcshでls等のコマンドは実行できるが、自作の特定のシェルスクリプトだけが実行できないということですよね。 もしそのスクリプトの名前がlinksに似た名前なんだったら、スクリプトのあるディレクトリにPATHが通っていない、実行ビットが立っていない等で実行ファイルとして認識されていないと思われます。それで、実在するlinksというコマンドがタイプミス修正候補として挙がった。 tcsh を前につけるとPATHが通っている必要も、実行ビットが立っている必要も、1行目に#!/bin/tcsh等と書いておく必要も無いので、実行できるんでしょう。 bashからだと起動できるのが不思議ですが、PATHの設定が違うのでしょうか?

masakazu180
質問者

補足

解説ありがとうございます。 「bashからだと起動できる」と書いてましたが、 「bash起動時に、tcsh シェル名 と入力すると実行できる」の誤りです。すいません。 tcsh を頭に付けないで実行できる方法は ないでしょうか?

  • notnot
  • ベストアンサー率47% (4900/10359)
回答No.1

tcshは10年以上使っておらず、cygwinもWin95時代に使ったきりなのでですが、回答が付かないので。 unix系の一般論でcygwinに当てはまるかどうかわかりませんが、bash起動にしておいて、.bash_login か .bashrc の先頭に、exec tcsh -l を書くのはどうですか? >links (y|n|e|a) という確認メッセージのようなものがでて実行できません。 これがよくわかりませんが、メッセージはこれだけですか?bashプロンプトで、tcshだけ打つとtcshは正しく起動してtcshのプロンプトが出るのでしょうか? >あと、tcsh起動時のエイリアスの設定方法 .tcshrc に、 alias ls ls -CF とかではなかったかと。man tcsh にあると思いますが。

masakazu180
質問者

補足

回答ありがとうございます。 返信送れて申し訳ありません。 >links (y|n|e|a) という確認メッセージのようなものがでて実行できません。 >>これがよくわかりませんが、メッセージはこれだけですか?bashプロンプトで、tcshだけ打つとtcshは正しく起動してtcshのプロンプトが出るのでしょうか? tcshだけ打つとtcshのプロンプトはでます。 実は、通常のコマンド ls や cd は実行できるのですが、自分で作成しているC-シェルを起動すると CORRECT>links (y|n|e|a)? というようになるのです。 同じシェルをbash起動時に実行しても問題なく動くのですが。。。 また、このシェルを tcsh起動時に、tcsh シェル名 として実行しても動きます。 現状は、tcsh起動時に、この頭に毎回tcshをつけないとシェル実行できないのが困っているのです。

関連するQ&A

専門家に質問してみよう