• ベストアンサー

CシェルプログラミングをCygwinで?

csh環境でのスクリプト作成をしたいのですが、UNIX環境をWindows上で実現できる?Cygwinというものがあると知りました。Cygwinにおいてシェルプログラミングは、本物のUNIXのようにできるものなのですか? シェルがLinuxRedHat並に動作すれば充分なのですが、不足する機能などはないのですか? またシェルプログラミングを学ぶ上で充分なのか判断できないので経験者または専門家の方ご教授願います。 またCygwinは起動させると重いんでしょうか? Cygwinを分かりやすく説明しているサイトなども教えて頂けるとうれしいです。よろしくお願いします。

noname#92415
noname#92415

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

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

#1です。 >cshはスクリプトを書くための言語ではないです。 というのはちょっと言いすぎだったか。 コマンドが並んだ程度の単純なスクリプトならcshでも十分書けますので、cshサンプルを動かしたければ、#2さんのお書きのようにcygwinのインストール時の設定でtcshを入れれば良いです。cshの上位互換です。 #1でcolinuxを挙げましたが、これからシェルプログラミングを勉強すると言うレベルだとインストールが難しいかも知れませんので、cygwinのほうがいいでしょう。インストールは簡単です。

noname#92415
質問者

お礼

回答ありがとうございます。なるほど経験者の方に言われるとCygwinはUNIXの学習という点では特に問題なく利用できるようですね。スクリプトの作成を学ぶ程度なので早速Cygwinを利用したいと思います。助かりました。ありがとうございました。

その他の回答 (2)

  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.2

もし、手持ちのテキストやサンプルが csh/tcsh で、そこにこだわりたいなら、カスタムで tcsh をインストールする必要があります。 #1 さんの書かれたとおり、標準はあくまで bash ですから。

noname#92415
質問者

お礼

回答ありがとうございます。やはりフリーのソフトとなるとBashが標準となるのですね。カスタムでcsh/tcshを利用できるのであれば問題ないと思います。ありがとうございました。

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

cshはスクリプトを書くための言語ではないです。コマンドラインで使うためのシェルの一種で、.cshrc や .login を書く程度のスクリプト記述能力しかありません。 cygwinだとbashが標準なので、bashでスクリプトを書くのが良いでしょう。機能としてはunix/linux並と思っていいと思います。cコンパイラもあるのでもし不足するコマンドがあってもインストールすれば良いですが、各種コマンドは十分標準で揃っています。 重さですが、grep,awk,perl等同機能のWin32ネイティブのコマンドと比べて特に重いと言う事は無いです。Xまで動かすとWin用の製品版Xよりは重いですが、製品版相手なのでこれはしょうがないですね。 他にはWindows上でlinuxを動かすcolinuxというのもあります。これだと本物のlinux(Debian等)がwindowsと同時に動きます。

関連するQ&A

  • Cygwin上でCシェルのforeachが動かない……

    今回UNIX上の機能をWindows上で実現できる 「Cygwin」というものをインストールしました。 あるプログラムa.outを同じディレクトリにあるxmlファイル全てに対して実行したかったので #!/bin/csh foreach i(*.xml) ./a.out $i end というk.shファイルを作り csh k.sh で実行してみたのですが最初に見つかったと思われる一つのxmlファイルにしかa.outが実行されません。 スクリプトの書き方に問題があるのでしょうか? それともプログラム……? ここを利用するのは初めてですが、どうぞよろしくお願いします。

  • CYGWINやKNOPPIXを、BシェルからCシェルに変更したいです。

    お世話になっております。 疑問となっている事は以下の通りです。 (1)CygwinのプロンプトををBシェルからCシェルへ変更する手順。 (2)KnoppixのプロンプトををBシェルからCシェルへ変更する手順。 ということをしたいと思います。 (1)については、Cygwin.batの最後にあるbashをcshに変更したのですが、Cygwin自体が起動しなくなりました。 (2)については、どの様な設定をすればよいか全く解らない状態です。 どのような設定をすれば、Cシェルが扱えるようになるのでしょうか。 ご教授のほど、宜しくお願いします。

  • cygwinでcshが認識されず困っています

    初めまして。現在、研究に必要なため、windows上でcygwinを使っております。 cshで書いたスクリプトを実行すると、 bash: csh: command not found と出てきてしまいます。 数週間前にPCに不具合があり、リカバリしたためcygwinを入れ直したところ、 このような事態になりました。 以前と同じ設定をしたので、原因がわかりません。 見当違いの方法かもしれませんが、 起動時のシェルをtcshに変えてみても状況は変わりませんでした。 UNIX等についてあまり詳しくないため、大変困っております。 cygwinを使ってらっしゃる方、UNIXに詳しい方、教えて頂けませんでしょうか? よろしくお願いいたします。

  • cygwinを使ってネットワークプログラミング?

    ネットワークプログラミングがしたいです。 どのレベルのものかといえば、ソケットレベルのものです。 そこで書籍やサイトを探しているのですが、どうも プラットフォームがUNIXとして書かれているものが多いです。 cygwinを使えば、UNIX環境でプログラミングをしているのと 変わりなくプログラミングできるのでしょうか? ##以下蛇足 cygwinはUNIXをエミュレートしているだけだから本質的には、 違うと思いますが、EXEを実行した時に結果が同じであれば 問題ありません。 ccかgccを使うのでしょうか。IDEがないと思うので、 自分でmakefile作らないとだめなのかな・・

  • MinGW,msysでCスクリプトの実行

    windows上でCシェルスクリプトで書かれたファイルを実行する必要が生じました。 これまではcygwin上で難なくやっていたのですが、cygwinは大きいので、これをやめてMinGWにしたため、Cシェルスクリプトが流れなくて困っています。MinGW、msysにはCシェルは無いようです。そこで、MinGW,msys,minttyの環境下で以下のようにやってみたのですが、これでよいのでしょうか? (1)MinGW,msys,minttyをインストール(Bシェルの環境ができる) (2)tcsh.exeをwebからダウンロード(ftp://ftp.funet.fi/pub/unix/shells/tcsh/) (3)tcsh.exeをmsysの/binに入れて、cshにハードリンクを張る(#ln tcsh.exe csh) これで簡単なCシェルスクリプトは流れるようですが、そのCシェルスクリプトの中で、さらにスクリプトファイルを実行させるようなスクリプトはうまく流れません。結局、試行錯誤の結果、以下のように、csh,shを頭に付加してようやく流れるようになりました。 ・元のファイル(script-a,bは流れない) #!/bin/csh -f ........... ./script-a(Cシェル) ./script-b(Bシェル) ........... ・修正後(ようやく流れた) #!/bin/csh -f ........... csh ./script-a(Cシェル) sh ./script-b(Bシェル) ........... 何故このようにしなければいけないのか?また、minttyでCシェルスクリプトを流す方法はこれでよいのか?(他に方法はないのか?)ご教示頂ければと思います。 当方、シェルスクリプトは全く素人で質問自体が的外れかもしれませんがよろしくお願いします。

  • cygwin上でvbscirptを実行する方法

    cygwinのコンソール画面で、hello.vbsというvbsファイルを起動し、vbスクリプトを実行する イメージです。 実現したいことは以下です。 UNIXサーバから、rshコマンドで、Windowsサーバのシェル(cygwin上)を実行する。 Windowsサーバのシェルは、さらに、vbscirpt(拡張子.vbs)を内部で実行する。 本来は、Windowsサーバのシェルのみで実装したいのですが、vbscriptで動作させる方法 しか分からないので、上記方法をとりたいと思っています。

  • シェルスクリプトとphpを使ったプログラミングについて

    UNIXサーバで、現在、シェルスクリプトやphpを使ってプログラムを書いています。 今は「csh cmd ファイル名」という形でシェルスクリプトを実行しています。このままではプロンプト画面で味気ないので次のようにしたいのですが、やり方が分りません。 まず、phpやhtmlで作成したファイル提出画面にてファイルを提出してもらいます、そして、それを受け取ります。その時例えば送信ボタンを押すと思うのですが、そのボタンを押したらファイル名を受け取り「csh cmd ファイル名」が実行されるといふうにしたいのです。何かいい方法があれば教えて頂きたいです。phpでなくてもいいので、お願いします。

    • ベストアンサー
    • PHP
  • msys(cygwin)で、シェルスクリプトのcdが動かないのは何故?

    msys(又はcygwin)で、シェルスクリプトに書いたcdが働きません。その解決方法を伺っても宜しいでしょうか?具体的には、下のような状況です。 [シェルスクリプト内容] #!/bin/bash echo cd前 cd testdir # ↑testdirは既存。コマンドラインから手打ちすると機能する! echo cd後 [実行結果の表示] cd前 : No such file or directory cd後 [環境] ・WinXP + 最新全パッチ適用 ・msysとcygwinをインストール 以上 どうか宜しくお願い致します。

  • シェルスクリプト内のcdで、カレントディレクトリを変えるには?

    シェルスクリプト内のcdコマンドで、カレントディレクトリを変えるにはどうしたらいいか?をどうか教えて下さい。 MS-DOSのバッチファイル内で"cd XXXXX"と書き実行した時の動作を、UNIX(CygWin)環境でも行いたいです。 が、シェルスクリプトは(サブシェルで動く為)カレントディレクトリが変わってくれません。aliasコマンド等でいろいろ実験しましたが、DOSバッチファイルのように「バッチファイル単体でディレクトリ移動が出来る方法」を探し出せませんでした。 極めて初歩的とは存じますが、どうか宜しくお願い致します。

  • cygwinのtcshでパスが通らない

    現在、WINDOWS2000で、cygwinを使ってunixの環境を開発しておりますが、起動時のシェル(bash)をtcshに変更すると、今まで通っていたパスに通らなくなってしまいます。 環境変数には、ちゃんと設定しているんですが。。 どなたか、cygwinを使ってらっしゃる方、わかったら教えて頂けませんか?大変困っています。

専門家に質問してみよう