シバン (Unix)
ファイル先頭のシバンを認識するのは、オペレーティングシステム (OS) の execve システムコール(exec を参照)を処理するルーチン中のプログラムローダーである。
ファイルの先頭がバイト順マークになっているUnicode形式のファイルの場合は動作しない。これはバイト順マークのために、OSのプログラムローダーがシバンを認識できなくなるためである。
シバンの参照先は、実行可能バイナリでなければならず、(シバン行のある)スクリプトであってはならない。
シバン行の最大文字数、指定可能な引数の数などは環境依存である。また、それを逸脱した場合の動作も環境依存である。特に複数個の引数を与えた場合にどう扱われるかはまちまち(普通に扱われる、2個目以降は無視される、空白の入った1個の引数にされる)であるため、注意が必要である。
envを用いたトリックはPATH環境変数に依存する。親プロセスが独自にPATHを設定していた場合、想定外の動作をする可能性がある。ruby インタプリタの場合は -x オプションを利用した以下のようなシェルスクリプトに見せかけるトリックを使用したほうが良い。
ラリー・ウォールのmetaconfigには、シバンを持たないシステムを検出し、スクリプトの先頭の#!/bin/shを: use /bin/shに置換する機能があった。