PostScript script 別解

#!/bin/sh
exec gs -q -dNODISPLAY -dBATCH -d#!='{2{currentfile 256 string readline{pop}if}repeat}' -- $0 "$@"
(Hello, World!)=

特徴

  • 別ファイルが必要ない。
  • #! や exec の行に何か追加しても大丈夫
    • 前の (id:yshl:20050818:1124357080 id:yshl:20070411:1176291167) は別ファイルにも追加したものを加えなければならない
  • ghostscript 以外で動くかどうかは知らない

例:バイナリ化された PostScript プログラムを元に戻すプログラム

ただし、ファイル中に LZW 等で圧縮されたデータが書いてあって、それを自分で読むようなプログラムは多分失敗する。

#!/bin/sh
exec gs -q -dNODISPLAY -dBATCH -d#!='{2{currentfile 256 string readline{pop}if}repeat}' -- $0 "$@"
ARGUMENTS length 0 eq{
    (%stdin)
}{
    ARGUMENTS 0 get
}ifelse
(r)file /infile exch def

{infile token not {exit}if ==only( )print}loop