![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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シェルスクリプトを流す方法はこれでよいのか?(他に方法はないのか?)ご教示頂ければと思います。
当方、シェルスクリプトは全く素人で質問自体が的外れかもしれませんがよろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
> 「流れる」とは「支障なく実行できる」という意味です
そういうことではなくて。
「流れない」と言った場合に
・エラーメッセージが出て実行が停止する
から
・マシンルームが爆発炎上する
まで、ありとあらゆることが「流れない」に該当します。
その原因も
・単純な入力ミス
から
・カルト球団の呪い
まで、ありとあらゆる可能性があります。
# 「呪い」による「爆発」を最初に検討することは無いでしょうけど。
あなたの隣にいれば、直接動作を見たり、質問したりできますが、こういう場所ではそうもいきません。
何がどうなっているのか、具体的に書くようにしましょう。
> エラーメッセージは出ず、windowsにコントロールが移り、「ファイルを開くプログラムの選定」の画面が立ち上
こういう情報こそが必要なのです。
Windowsのコマンドプロンプト(CMD.EXE)から TEST.XLS 等と入力すると、 TEST.XLSをダブルクリックしたのと同等の動作をします。
それを考えると、あなたがシェルで実行しているつもりの何かが、実際にはWindowsのコマンドとして実行されている、と予想できます。
・「元のファイル」自体が、Windowsのバッチファイルとして実行されている
sh,cshとシェルを指定すると動作することから、可能性はあります
・script-a, script-bが,Windowsのバッチファイルとして実行されてしまう
sh,cshとシェルを指定すると動作することから、可能性はあります
tcshがMinGWに対応していない可能性もあります。
あたりを確認してはどうでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) シェルのSTEP数について教えてください。シェルスクリプトの先頭に、#!/bin/shとか書きますよ 3 2023/06/08 19:02
- その他(プログラミング・Web制作) Linuxについて質問です。 引数に指定されたアクセスログのファイルからアクセス数が多い順に上位3つ 1 2023/02/03 03:46
- UNIX・Linux Linuxのシェル関数を作成して要件を満たす方法 1 2022/11/19 20:33
- その他(プログラミング・Web制作) Pythonの作業環境・作業フォルダの迅速な設定・指定方法 3 2022/04/01 07:55
- UNIX・Linux Debianでシェルスクリプトにおいて正規表現の条件文で[[,]]が使えないので困ってます 2 2023/01/20 09:27
- PostgreSQL postgreSQLをbashで実行する際に「MORE」表示をなくす方法 1 2023/05/08 21:42
- UNIX・Linux shellscript内のコマンドを、sudo(toor)として実行 2 2022/09/23 15:05
- UNIX・Linux デフォルト値のパラメータ展開 1 2022/08/12 17:34
- UNIX・Linux Linuxの実行結果を修正したいです。 2 2022/11/23 08:32
- その他(プログラミング・Web制作) ログインシェル時のSHELL環境変数 1 2022/06/08 19:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
VBscriptが起動しない?
-
exeファイルを実行するとコマン...
-
PDFファイルを開き、印刷し、閉...
-
バッチファイルの内容を表示さ...
-
ネットワーク名が見つかりません
-
[teraterm] waitコマンドで停止...
-
シェルで5分前の時間を取得したい
-
これってパソコンの最適化が完...
-
「読み取りと実行」と「読み取...
-
メッセージを他のPCに出したい
-
VBScriptでSQLファイルの実行
-
VBScript(WHS)でWMIを使ってリ...
-
VBAでバッチファイルを1つ実行...
-
エクセル フォルダの画像を画...
-
VBA 既に開いているBookに継続...
-
ホームページのリンクからプロ...
-
VB.NETでのDOSコマンドを実行に...
-
16進数の変換処理
-
NASに移したBATファイルからセ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
exeファイルを実行するとコマン...
-
バッチファイルで以下のような...
-
テキストファイルの1行目のみを...
-
[teraterm] waitコマンドで停止...
-
VBscriptが起動しない?
-
「読み取りと実行」と「読み取...
-
Excel VBA ステップインが途中...
-
バッチファイルの内容を表示さ...
-
PDFファイルを開き、印刷し、閉...
-
ネットワーク名が見つかりません
-
これってパソコンの最適化が完...
-
エクセル フォルダの画像を画...
-
【VB.NET】exeを実行すると「発...
-
pythonスクリプトを管理者権限...
-
Excel(エクセル) VBA プロシー...
-
VBS実行時にコマンドプロンプト...
-
バッチファイルが不正終了して...
-
16進数の変換処理
-
シェルで5分前の時間を取得したい
おすすめ情報