シェルスクリプトの先頭行に「#!/bin/sh」とよく書くけど、あれの意味が初めて分かった!
今まで「シェルの種類」を書くものだと思ってた。シェルにはshだのkshだの色々あるから。
実は、実行権限の付いたテキストファイルを直接実行するときに「そのファイル(自分自身)を どのコマンドを使って実行するか」を指定するものらしい。
(だから、shコマンドの引数としてスクリプトファイルを指定する場合には、先頭行に書いたシェルの種類の指定は意味なかったんだなぁ。そこに付けた「-x」オプションが無視された(ように思えた)のも同じ理由か。「#」から始まる行は単なるコメントだし)
そんでもって、主要な使い道がシェルのスクリプトだから/bin/shとか/bin/kshとか書かれているのをよく目にしていただけであって、実はどんなコマンドでも出来るみたいだ。
と言ってもtailとかに使ってもあまり意味は無いので(爆)、awkとか、ある程度プログラムが書ける(=スクリプト)ファイルで使う想定なんだろうな~。