自己削除シェルスクリプト 質問する

自己削除シェルスクリプト 質問する

この質問に対する答えを探しましたが、見つかりませんでした。

サーバーの初期設定を行う簡単なスクリプトを作成しましたが、完了時にルート ディレクトリからスクリプト自体を削除/リンク解除したいと考えています。Google で検索していくつかの解決策を試しましたが (たとえば、/bin/rm $test.sh)、スクリプトは常にそのまま残っているようです。これは可能ですか? 以下は、これまでのスクリプトです。

#! /bin/bash
cd /root/
wget -r -nH -np --cut-dirs=1 http://myhost.com/install/scripts/
rm -f index.html* *.gif */index.html* */*.gif robots.txt
ls -al /root/

if [ -d /usr/local/psa ]
    then
        echo plesk > /root/bin/INST_SERVER_TYPE.txt
    chmod 775 /root/bin/*
    /root/bin/setting_server_ve.sh
    rm -rf /root/etc | rm -rf /root/bin | rm -rf /root/log | rm -rf /root/old
    sed -i "75s/false/true/" /etc/permissions/jail.conf
        exit 1;
elif [ -d /var/webmin ]
    then
    echo webmin > /root/bin/INST_SERVER_TYPE.txt
    chmod 775 /root/bin/*
    /root/bin/setting_server_ve.sh
    rm -rf /root/etc | rm -rf /root/bin | rm -rf /root/log | rm -rf /root/old
    sed -i "67s/false/true/" /etc/permissions/jail.conf
        break
    exit 1;
else
    echo no-gui > /root/bin/INST_SERVER_TYPE.txt
    chmod 775 /root/bin/*
    /root/bin/setting_server_ve.sh
    rm -rf /root/etc | rm -rf /root/bin | rm -rf /root/log | rm -rf /root/old
    sed -i "67s/false/true/" /etc/permissions/jail.conf
        break
    exit 1;
fi  

ベストアンサー1

rm -- "$0"

うまくいくはずです。$0 は、実行されたスクリプトの完全なパスを表す魔法の変数です。

おすすめ記事