タグ

ブックマーク / emasaka.blog.fc2.com (3)

  • 本を読む ママ、どうして/usr/binにcdがあるの?

    FreeBSDとかMac OS XとかOpenSolarisとかには、/usr/bin/cdというコマンドがあります。定期的にMLなどで話題にのぼる、自転車置き場の議論(bike-shed discussion、略してBSD)の定番ネタのようです。 このコマンドは、もちろん内蔵コマンドのcdのような動作はしません。呼び出し元とは独立したプロセスなので、呼び出し元のシェルに影響を与えません。 なんのためにあるか なんでそんなのがあるかというと、POSIXで「シェルの内蔵コマンドもexec系のシステムコールでアクセスできるべし」と決められてるからだそうです。「特別な内蔵コマンドを除き」ってありますが、cdは入ってませんね。 all of the standard utilities, including the regular built-ins in the table, but not t

    iww
    iww 2012/11/05
    外部コマンドとしての/usr/bin/cd
  • 本を読む execによるリダイレクトで番号を自動で割り振る

    シェルスクリプトのリダイレクトでは、execを使うと一般的なプログラミング言語のopenみたいなことができます。 exec 5> out.txt こうしておいて、ファイルディスクリプターの5番にリダイレクトしてやれば、out.txtに出力されます。 ls >&5 クローズは“番号>&-”。 exec 5>&- ただ、これだと空いてるファイルディスクリプター番号を自分で管理しなくてはなりません。そこで、最近のbash(4.1以降)やzshでは、数字のかわりに変数を指定すると、自動で割り振ってくれます。 exec {fd}> out.txt こうするとファイルディスクリプター番号が自動で割り振られて、その番号が変数fdに入ります。あとは番号のかわりに変数を指定します。 ls >&$fd exec {fd}>&- …ただ、実際には多くの場合、execを使わなくてもコマンド群を{}や()で囲ってリ

  • 本を読む bashでGrassをキメたら悪酔いしたwww

    ,r;;;;ミミミミミミヽ,,_ ,i':r"    + `ミ;;, __,、           ≡     彡        ミ;;;i 〃ニ;;::`lヽ,,_           ≡  彡 ,,,,,、 ,,,,、、 ミ;;;! 〈 (lll!! テ-;;;;゙fn    __,,--、_  ..   ,ゞi" ̄ フ‐! ̄~~|-ゞ, ≡ /ヽ-〃;;;;;;;llllll7,,__/"  \三=ー"."ヾi `ー‐'、 ,ゝ--、' 〉;r'  ≡  bashは自分を評価することができるんです >、/:::/<;;;lllメ   \ヾ、  ヽTf=ヽ  `,|  / "ii" ヽ  |ノ j,, ヾて)r=- | ヾ:   :ヽ;;:     | l |  l  ''t ←―→ )/イ^    ≡ awkとは違うんです ,イ ヽ二)l(_,>" l|    ::\;::    |

    iww
    iww 2010/09/09
    『みなさんご存知のとおり、シェルスクリプトはLispの一方言です。』知らなかった・・・
  • 1