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’
Supprimer l'espace entre 'file',' 'et' = cageo.crt'. Il devrait lire 'file = cageo.crt' – iamauser
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'. –
Vous pouvez déplacer la commande wget du bloc if-then-else-fi –