【发布时间】:2011-10-20 10:35:48
【问题描述】:
bash 脚本在遇到删除自身的语句后如何执行? 例如,当我运行包含以下内容的 test.sh 脚本时:
<--some commands-->
rm test.sh
<--some more commands-->
end
脚本会一直执行到最后才删除自己
【问题讨论】:
-
当一个应用程序被执行时,它的代码被加载到内存中。你只是删除磁盘上的文件,不会影响内存中的代码。
-
大概是整个脚本在执行时被读入内存,所以
rm test.sh之后的命令还在内存中待执行。 -
它不会在内存中复制。因此,例如,如果脚本在运行时被修改,它将执行修改。这让我最近很头疼。可爱的例子:这一行脚本将在短时间内填满你的磁盘:'cat $0 >>$0'。
标签: bash self-destruction