71 votes

script shell à suppression automatique

J'ai cherché une réponse à celle-ci mais je n'en ai pas trouvé.

J'ai écrit un script simple qui effectue les réglages initiaux du serveur et j'aimerais qu'il se supprime/se dissocie du répertoire racine à la fin. J'ai essayé un certain nombre de solutions que j'ai googlé (par exemple /bin/rm $test.sh) mais le script semble toujours rester en place. Est-ce possible? Ci-dessous est mon script jusqu'à présent.

 #! /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  

110voto

richo Points 3238
rm -- "$0"

Devrait faire l'affaire. $0 est une variable magique pour le chemin complet du script exécuté.

25voto

ziesemer Points 15594

Cela fonctionne pour moi:

 #!/bin/sh

rm test.sh

Peut-être que vous ne vouliez pas vraiment avoir le '$' dans '$test.sh' ?

2voto

Le plus simple :

 #!/path/to/rm

Utilisation : ./path/to/the/script/above

Remarque : /path/to/rm ne doit pas du tout contenir de caractères vides.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X