タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

shebangに関するn2sのブックマーク (4)

  • Shebangという謎な事実上業界標準について

    Shebangとは、UNIXのシェルスクリプトの業界標準で、シェルスクリプトの一行目のコメントの、#!を意味する。sheが短母音か長母音か分からなかったので、英語ネイティブにたずねたところ、人によって意見が違う。短母音の方が多数派のようなので、一応シバンが近いものになるだろう。日語版のWikipediaでも、シバンとしている。この機能には他にも多数の名前があるが、もっとも有名なのが、Shebangだそうだ。 その業界標準的な文法は、以下の通り(ただし、後述するように、この文字列の扱いについては違いがある) #! 文字列 [改行] 普通、実行権限のついたファイルは、標準のシェルで実行されるが、このShebangがある場合は、#!から改行までの間の文字列を、後述するバラバラな方法で解釈して、execで実行し、その際の引数には元のシェルスクリプトファイルへのパスが指定される。 問題は、このsh

    n2s
    n2s 2013/08/07
    あと、先頭32文字までしか解釈しない実装もあったな。
  • なぜかPATHを見るLinuxのshebang - Just another Ruby porter, 2012-5-b

    ■ LDR Full Feed 0.0.34が動かない LDRへ移行ついでにLDR Full Feedも上げたら動かなくなってしまった。Gマークが出てこない。 どうもLDR Full Feed 0.0.34とGreasemonkey 0.9.19との相性が悪いようで。 いや、Greasemonkey 0.9.19のバグかな。 Greasemonkey 0.9.18か0.9.20.beta1以上を使えばok。 ■ なぜかPATHを見るLinuxのshebang Cygwinでは前から絶対パスで書かなくてもshebangで実行できることは知っていたが、 Ubuntu 12.04でもPATHを見てるようだ。 % echo '#! echo' > x.sh % chmod +x x.sh % ./x.sh ./x.sh % PATH= ./x.sh zsh: ./x.sh: bad interpr

    n2s
    n2s 2012/05/17
    なんか謎な機能だなぁ。手元のdebian(wheezy)で「#! echo」を試してみたら、行末に空白あけないと出力の頭に変なゴミがついてくる。あとPerlやRubyは後ろに--をつけないといけない。/ zshの機能だそうで→id:entry:94426262
  • どさにっき - /usr/bin/env じゃなきゃどうすんの?

    2010年5月12日(水) ■ /usr/bin/env じゃなきゃどうすんの? 大昔書いたことに対して、perl のパスをどう書き換えたらいいのかわからない CGI をただ使うだけのお客さんのために、#!/path/to/perl ではなく #!/usr/bin/env perl を使うという 反論をもらった。個人ベースで小さな CGI を作って配布する、というのは最近ではもうだいぶ廃れてきてるような気がしなくもないけど、まあ、4年も前も書いたことに対する話なんでそのへんは気にしないことにする。 envもその一環なの。否定するなら対案を示せといいたい。 _ こんなんどうでしょうか。 #!/bin/sh # -*- perl -*- # 動作には関係なし(エディタのモード判定用) PATH=/bin:/usr/bin:/usr/local/bin:... exec perl -x -opt

  • 卜部昌平のあまりreblogしないtumblr - ■ #!/usr/bin/env _...

    今さらながら、 CGIの神話と現実というエントリ。ただし内容とはまったく関係なし。スクリプト言語の shebang 行(#!)でスクリプトインタープリタを直接書かずに /usr/bin/env でラップするという悪習はいったい誰が広めたんだろうか。ruby な人に多いように思うがそれだけじゃないし。 hoge というインタープリタを使うスクリプトの1行目をたとえば #!/usr/bin/env hoge としておくと、hoge の実行バイナリが /usr/bin/hoge でも /usr/local/bin/hoge でも $HOME/bin/hoge でもどこにあってもパスが通ってさえいれば起動できる。それはメリットなんだろうか。わしにはむしろデメリットにしか思えない。 /usr/bin/env を使うというのは、PATH の値にしたがってインタプリタの場所を探すという意味である。つまり

    卜部昌平のあまりreblogしないtumblr - ■ #!/usr/bin/env _...
  • 1