csh で次のようなエイリアスを使っていた。
alias cco 'gcc -O -o \!^:r \!*' |
cco prog1.c prog2.c -L/opt/X11/lib -lX11 とかすると、 gcc -O -o prog1 prog1.c prog2.c -L/opt/X11/lib -lX11 を実行してくれる、そういうエイリアスである。
その場限りの書き捨てプログラムでは、単に cc でコンパイルして、 ./a.out で実行とする方が、 実行形式が上書きでなくなるのでゴミが増えなくて良い、という考え方もあるかも。
何回もコンパイルする場合は、Makefile 書いちゃう方が実は楽、 ということも多いし。
ともあれ、同じことを zsh でするにはどうすれば良いか?
こんな感じかな。
alias cco='(){gcc -O -o $1:r $@}' |
エイリアスでなく、関数として定義すべき、という意見があるとか。
cco () { gcc -O -o $1:r ${@} } |