自删除脚本用于Linux Bash和Windows Batch



我有一个卸载脚本,用于清理与应用程序一起使用的附加工具。该脚本的版本可以同时在Windows和Linux上运行。

我想能够删除卸载脚本文件,也在其中的脚本运行的目录太(在两个Windows批处理文件的情况下,也为Linux bash文件的情况下)。现在,除了脚本和它运行的目录之外,所有的东西都在运行后保留。

如何删除脚本和脚本目录?

谢谢

在Bash中,您可以执行

#!/bin/bash
# do your uninstallation here
# ...
# and now remove the script
rm $0
# and the entire directory
rmdir `dirname $0`
#!/bin/bash
#
# Author: Steve Stonebraker
# Date: August 20, 2013
# Name: shred_self_and_dir.sh
# Purpose: securely self-deleting shell script, delete current directory if empty
# http://brakertech.com/self-deleting-bash-script
#set some variables
currentscript=$0
currentdir=$PWD
#export variable for use in subshell
export currentdir
# function that is called when the script exits
function finish {
    #securely shred running script
    echo "shredding ${currentscript}"
    shred -u ${currentscript};
    #if current directory is empty, remove it    
    if [ "$(ls -A ${currentdir})" ]; then
       echo "${currentdir} is not empty!"
    else
        echo "${currentdir} is empty, removing!"
        rmdir ${currentdir};
    fi
}
#whenver the script exits call the function "finish"
trap finish EXIT
#last line of script
echo "exiting script"

相关内容

  • 没有找到相关文章

最新更新