use*_*751 84 executable shell-script rm files shebang
如果您创建一个包含以下内容的可执行文件并运行它,它会自行删除。
这是如何运作的?
#!/bin/rm
Run Code Online (Sandbox Code Playgroud)
Ste*_*itt 112
内核解释以 开头的行#!并使用它来运行脚本,并传入脚本的名称;所以这最终会运行
/bin/rm scriptname
Run Code Online (Sandbox Code Playgroud)
删除脚本。(正如Stéphane Chazelas 指出的那样,scriptname这里足以找到脚本——如果您指定了相对或绝对路径,PATH则按原样传入,否则在其中找到的任何路径都被预先考虑,如果您PATH包含该路径,则可能包括空字符串,并且脚本在当前目录中。你可以玩一个回声脚本——#!/bin/echo看看它是如何工作的。)
正如hobbs 所指出的,这意味着您的脚本实际上是一个rm脚本,而不是一个bash脚本——后者将以#!/bin/bash.
有关这在 Linux 中如何工作的详细信息,请参阅程序如何运行;该文章的评论提供了其他平台的详细信息。#!被称为shebang,您会通过搜索该术语找到大量信息(感谢Aaron的建议)。正如jlp指出的那样,您还会发现它被称为“磅爆炸”或“哈希爆炸”(#通常称为“磅”——在不使用的国家/地区£——或“哈希”,以及!“爆炸” )。维基百科有更多信息。