- ベストアンサー
zshrcのfunctionの作り方
C言語のコンパイルの際、 gcc -Wall -o xxx xxx.c と入力する手間を省きたいので、rcファイルに function gcc () { gcc -Wall -o "$1%.c" "$1" } としているのですが、 gcc xxx.c を実行するとターミナルが落ちてしまいます。 何がいけないのでしょうか。 %.c は、 .cを除く目的で使っています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>gcc.c%.c そのあたりは確認済みなのかと思ってました。zshはあまり知りませんが、bash だと、 "${1%.c}" ですね。多分同じでは?
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10358)
回答No.1
自分自身を呼び出すように書いてあるので、無限に再帰呼び出しを続けるからですね。スタックがあふれた時点でzshが異常終了します。 function gcc () { /usr/bin/gcc -Wall -o "$1%.c" "$1" } などとして、関数の中から関数自分自身を呼び出さないようにします。
質問者
補足
ありがとうございます! 確かにgccは行われるようになりました! しかし、例えば gcc test.c を行うと gcc.c%.c というファイルが出来てしまい、末尾の.cを除く部分がまるで機能していません。 どうすれば良いかご存知でしたら教えていただきたいです。
お礼
手取り足取りありがとうございました。 おかげさまで無事思い通りの結果が得られました!