下のスクリプトはなぜ自分で削除されますか?

下のスクリプトはなぜ自分で削除されますか?

次の内容で実行ファイルを作成して実行すると、自動的に削除されます。
どのように動作しますか?

#!/bin/rm

ベストアンサー1

カーネルは次から始まる行を解釈し、#!それを使用してスクリプトを実行し、スクリプト名を渡すので、最終的に実行されます。

/bin/rm scriptname

これによりスクリプトが削除されます。 (ようにスティーブン・チャジェラス 指摘scriptnameここでスクリプトを見つけるのに十分です。相対パスまたは絶対パスを指定すると、そのまま渡されます。それ以外の場合は、以前に見つかったすべてのパスが前に追加されます。そのパスを含み、スクリプトが現在のパスにある場合は、PATHNULL文字を含めることができます。パス文字列PATHディレクトリ。 echoスクリプトを使用して#!/bin/echo動作を確認できます。 )

〜のようにホップス指摘したように、これはスクリプトが実際にはrmスクリプトではなくbashスクリプトであることを意味します。後者は で示されます#!/bin/bash

バラよりプログラムの仕組みLinuxでこれがどのように機能するかについての詳細は、この記事の説明で他のプラットフォームに関する詳細を提供します。#!Shebangと呼ばれる用語を検索すると、多くの情報を見つけることができます(ありがとうアーロン提案)。 〜のように日本LP「ポンドバン」または「ハッシュバン」とも呼ばれます(しばしば「ポン​​ド」または「ハッシュ」とも呼ばれ、#この単語が使用されていない国では「バン」とも呼ばれます)。£!ウィキペディアより多くの情報があります。

おすすめ記事