シェルスクリプトでの'--'の意味は、オプションの打ち止め


このエントリーをはてなブックマークに追加

シェルスクリプトでハイフンを2つ繋げた'--'の意味を最近はじめて知りました。これはオプションの打ち止めを意味します。

たとえばtouchコマンドで-hという空ファイルを作成しようとして

$ touch -h

とすると、-htouchコマンドのオプションとして解釈されてしまうため、下記のようにエラーが出てしまいます。

$ touch -h
touch: ファイルオペランドがありません
Try 'touch --help' for more information.

ここで--の出番です。--の後ろにある文字列はtouchのオプションではないことを明示できるので、以下のようにすることで-hという名前の空ファイルを生成できます。

$ touch -- -h