Shell-Script

為什麼以下腳本會自行刪除?

  • February 23, 2018

如果您創建具有以下內容的執行檔並執行它,它將自行刪除。

這是如何運作的?

#!/bin/rm

核心解釋以開頭的行#!並使用它來執行腳本,並傳入腳本的名稱;所以這最終執行

/bin/rm scriptname

刪除腳本。(正如Stéphane Chazelas 指出的那樣scriptname這裡足以找到腳本 - 如果您指定了相對或絕對路徑,則按原樣傳入,否則在其中找到任何路徑PATH,如果您PATH包含該路徑,則可能包括空字元串和腳本在目前目錄中。你可以使用 echo 腳本——#!/bin/echo看看它是如何工作的。)

正如hobbs指出的那樣,這意味著您的腳本實際上是一個rm腳本,而不是一個bash腳本——後者將以#!/bin/bash.

請參閱程序如何執行以了解其在 Linux 中如何工作的詳細資訊;該文章的評論提供了其他平台的詳細資訊。#!被稱為 shebang,您可以通過搜尋該術語找到很多資訊(感謝Aaron的建議)。正如jlp指出的那樣,您還會發現它被稱為“磅爆炸”或“雜湊爆炸”(#在不使用的國家通常稱為“磅”£或“雜湊”,以及!“爆炸” )。維基百科有更多資訊。

引用自:https://unix.stackexchange.com/questions/280778