2017-10-19 27 views
0

J'essaie de créer un script où si le fichier existe, effectuez une suppression, puis obtenez un wget à partir d'artefact. Exécution de ce code ci-dessous pour une raison quelconque ne supprime pas mon dossier et crée un nouveau avec une extension ... exemple cageo.crt.1, .2, .3, etc.Comment vérifier si un fichier existe avant la suppression?

Lorsque je tente de le déboguer montrera rm -f mais sans le nom du fichier

#!/bin/bash -ex 
    #install Certificate 
    cd /deployment/scripts 

    # check if cert is already installed 
    file = cageo.crt 
    if [ -f $file ]; then 
      echo "File $file exists." 
      echo "Delete file and get latest" 
      rm -f $file 
      wget https://artifactory.geo.com/artifactory/cageo.crt 
    else 
      wget https://artifactory.geo.com/artifactory/cageo.crt 
    fi 

Ceci est mon sortie:

+ cd /deployment/scripts 
+ file = cageo.crt 
=:    cannot open (No such file or directory) 
cageo.crt: PEM certificate 
+ '[' -f ']' 
+ echo 'File exists.' 
File exists. 
+ echo 'Delete file and get latest' 
Delete file and get latest 
+ rm -f 
+ wgethttps://artifactory.geo.com/artifactory/cageo.crt/cageo.crt 
--2017-10-19 17:39:16-- https://artifactory.geo.com/artifactory/cageo.crt/cageo.crt 
Resolving artifactory.geo.com (artifactory.geo.com)... 10.0.138.51 
Connecting to artifactory.geo.com (artifactory.geo.com)|10.0.138.51|:443... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: 1675 (1.6K) [application/octet-stream] 
Saving to: ‘cageo.crt.4’ 
+2

Supprimer l'espace entre 'file',' 'et' = cageo.crt'. Il devrait lire 'file = cageo.crt' – iamauser

+0

iamauser a raison ... assurez-vous également que vous n'utilisez pas d'alias pour rm. Utilisez le chemin qualifié complet ... quelque chose comme '/ bin/rm'. –

+0

Vous pouvez déplacer la commande wget du bloc if-then-else-fi –

Répondre