Tclスクリプトと認識させる方法

 Tclスクリプトは、一般に

#! /usr/local/bin/tclsh

のような行で始めると、スクリプトのパーミッションを0755(実行可能) などにしておけば、ファイル名を打つだけで実行できますが、 tclshのマニュアルページで推奨されている別の書き方もあります。 それは

#!/bin/sh
# the next line restarts using tclsh \
exec tclsh "$0" "$@"

というものです。ちょっとトリッキーですが、2行目の末尾に \ があることで、 シェルスクリプトとしては3行目は有効になりますが、 Tclスクリプトとしては3行目は2行目から継続するコメントという扱いになります。 つまり、シェルスクリプトとして実行されて、3行目でtclshに化けて、 同じスクリプトを実行する、という動作になります。 このように書くと、
  • tclshのパスを正確に指定しなくてもよい
  • tclshのパスが長い(30文字を越える)場合、前者の例は使えないが、 この方法は使える
という利点があります。

やねうらの top
(first uploaded 2003/07/15 last updated 2004/04/03, MISUMI URANO)