
次の内容で実行ファイルを作成して実行すると、自動的に削除されます。
どのように動作しますか?
#!/bin/rm
答え1
カーネルは次から始まる行を解釈し、#!
それを使用してスクリプトを実行し、スクリプト名を渡すので、最終的に実行されます。
/bin/rm scriptname
これによりスクリプトが削除されます。 (ようにスティーブン・チャジェラス 指摘、scriptname
ここでスクリプトを見つけるのに十分です。相対パスまたは絶対パスを指定すると、そのまま渡されます。それ以外の場合は、以前に見つかったすべてのパスが前に追加されます。そのパスを含み、スクリプトが現在のパスにある場合は、PATH
NULL文字を含めることができます。パス文字列PATH
ディレクトリ。 echoスクリプトを使用して#!/bin/echo
動作を確認できます。 )
〜のようにホップス指摘したように、これはスクリプトが実際にはrm
スクリプトではなくbash
スクリプトであることを意味します。後者は で示されます#!/bin/bash
。
バラよりプログラムの仕組みLinuxでこれがどのように機能するかについての詳細は、この記事の説明で他のプラットフォームに関する詳細を提供します。#!
Shebangと呼ばれる用語を検索すると、多くの情報を見つけることができます(ありがとうアーロン提案)。 〜のように日本LP「ポンドバン」または「ハッシュバン」とも呼ばれます(しばしば「ポンド」または「ハッシュ」とも呼ばれ、#
この単語が使用されていない国では「バン」とも呼ばれます)。£
!
ウィキペディアより多くの情報があります。