作者: WATANABE Hirofumi
日時: 2005/4/16(00:59)
わたなべです。

ねこ丸 <wtnabe@...> writes:

>  #! /usr/bin/env awk -f
> 
>   ってすると
> 
>  env: awk -f: No such file or directory
> 
>   って怒られちゃうんですけど、これはどうにか工夫できるもんなんでしょう
> か?

残念ながらできません。#!の行は伝統的にプログラムと残りは引数
1個として扱うと決まってるらしいので、

  /usr/bin/env "awk -f" script

のように実行されてしまいます。
FreeBSDだけは例外で、怒られずに実行できます。独自の拡張か?
あとCygwinだと

  #! awk -f

のように書けるのでenvも必要なかったりしますが、これはこれで
バグっぽい気も。

> shell スクリプトの中に
> 
>  #! /bin/sh
>  
>  ...
>  
>  awk '
>    ..
>    ..
>  '
> 
>   で埋め込んだ方がいいのかな?

ですねえ。""にしてシェル変数をそのまま渡したり。

-- 
わたなべひろふみ