- 締切済み
makeでcshのコマンド展開を使用したい
makeの中で例えば /bin/rm -f AAA*.{s,loc} のようなコマンド展開を記述した所、 solaris版 のgnu makeではこれが認識されず、一方linux版のgnu makeでは認識されるという現象が出ております。 [SOLARIS] AAA*.s AAA*.loc共に削除されない [LINUX] AAA*.s AAA*.loc共に削除される 特にエラーメッセージも出ないので原因が分かりませんが、 make "{s,loc}"という記法はcshのものなので、makeから呼ばれるshellに原因があるのでは無いかと想像していますがどうなのでしょうか? もしshellに起因する問題である場合、makeの中で用いられる展開をcshに行わせる為の指定方法としてどのようなものがあるのでしょうか? 以上宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- shige_70
- ベストアンサー率17% (168/946)
回答No.1
なぜcshの記法にそれほどまでにこだわるのでしょうか? ログインシェルとしてcshやtcshがよく利用されているのは事実ですが、これはshが持つコマンドライン編集機能が乏しいためであって、総合的にはcshはすぐれているわけではありません。 むしろ、cshをスクリプトシェルとして利用するのは好ましくありません。 Linuxでうまくいったのは、shの実体がbashで、たまたまその記法を受け付けただけです。 Solaris含め一般的にはshはごく普通の Bourne shell でしかないので、csh由来の記法は受け付けません。 素直に、shの記法で書いてください。