Path: sramha!katsu From: katsu@sra.co.jp (Katsuhiro Watanabe) Message-ID: Date: 23 Mar 90 12:47:01 Organization: Software Research Associates, Inc.,Japan Newsgroups: local.unix Subject: exec on script References: In-reply-to: hisasima@sran207.sra.co.jp's message of 22 Mar 90 11:32:37 GMT Distribution: local 記事 で (Hiroyuki Hisashima) さんいはく、 > 形式のものと #! で始まっているものの2つを exec できます。で、#! の > 行を解析できるのは制限があって、確か 32 バイトだけだったと思います。 > #! /usr/mmb/hisasima/bin/bin.news/test/ver1/testshell > なんて書くと 32 バイト目できれてしまって exec できないことになってい > たと思います(これは kernel 内での制限。ま、たまたま 32 バイト目で切っ > た結果が実行可能なものだった場合はそれが動きますが)。 とのことですので、この機会にちょっと質問をさせてください。 昔ちょっと調べてみたのですが、 NEWS OS 2.2 以前 --+ Sun OS 3.4 EXPORT |--- 33文字目以降は切り捨てて実行を試みる VAX 4.3BSD --+ ^^ NEWS OS 3.2以降 ------ 32文字以上あると一切実行しない ^^ となっていると思います。ですから例えば、 #! /bin/echo ^--- 32文字目 は vax などでは動きますが、NEWS(OS 3.2 以降)では動かなくなってしまい ました。私はこのようにちょうど 32 文字のスクリプトをもっていたのですが、 OS3.2 でうごかなくて(少しだけ)困りました。 質問: わざわざ1文字分けちって最初の行が32文字のスクリプトを実行できなく してしまった理由はなんでしょうか? また、32文字を越えた場合には一切実行しなくしたのには深い訳があるの でしょうか?(私としては一切実行しない方が正しい実現の気がしています) どなたかご存じのかたはぜひご教授ください。 =============== 余談 =============== srava などで、 #! /bin/echo ^---- 32文字目 をやると ed が走るのは、berkleyism への /bin/echo のささやかな 反抗でしょうか? #! /usr/ucb/fpr ^---- 32文字目 をやると FP が走ってしまうのは、FP と fortran を作った Baccus 教授の fortran への深い反省の念のせいでしょうか? man rmail に「rmail を /bin におくな」とかいてあるのは、 #! /bin/rmail ^---- 32文字目 なんていうスクリプトを書くのを戒めるためなのでしょうか? -- ----____----____ 渡邊克宏 環境開発部