Shell-Script
為什麼以下腳本會自行刪除?
如果您創建具有以下內容的執行檔並執行它,它將自行刪除。
這是如何運作的?
#!/bin/rm
核心解釋以開頭的行
#!
並使用它來執行腳本,並傳入腳本的名稱;所以這最終執行/bin/rm scriptname
刪除腳本。(正如Stéphane Chazelas 指出的那樣,
scriptname
這裡足以找到腳本 - 如果您指定了相對或絕對路徑,則按原樣傳入,否則在其中找到任何路徑PATH
,如果您PATH
包含該路徑,則可能包括空字元串和腳本在目前目錄中。你可以使用 echo 腳本——#!/bin/echo
看看它是如何工作的。)正如hobbs指出的那樣,這意味著您的腳本實際上是一個
rm
腳本,而不是一個bash
腳本——後者將以#!/bin/bash
.請參閱程序如何執行以了解其在 Linux 中如何工作的詳細資訊;該文章的評論提供了其他平台的詳細資訊。
#!
被稱為 shebang,您可以通過搜尋該術語找到很多資訊(感謝Aaron的建議)。正如jlp指出的那樣,您還會發現它被稱為“磅爆炸”或“雜湊爆炸”(#
在不使用的國家通常稱為“磅”£
或“雜湊”,以及!
“爆炸” )。維基百科有更多資訊。