olivthill a écrit :
Si c'est sous Unix en ksh (bash aussi je suppose), alors faire
if ! [ -f "nom_fichier" ] ; then
echo "Fichier inexistant."
fi |
|
Il y a deux erreurs
1) le point d'exclamation doit être dans les crochets et non en dehors (il fait intégralement partie des options de la commande "test" dont les crochets en sont un synonyme)
2) l'option "-f" de test vérifie que le fichier est un fichier régulier (le test renverra "inexistant" si "nom_fichier" est un répertoire, ou un socket, etc...). L'option "existence" de test en bash se fait avec "-e"
=>
if [ ! -e "nom_fichier" ] ; then
echo "Fichier inexistant."
fi |
Le pb est que l'option "-e" n'est présente qu'en bash. Si tu bosses sur des systèmes plus vieux style sh ou ksh, t'es coinçé => solution: utiliser "ls" et vérifier le code d'erreur
ls -d "nom_fichier" 1>/dev/null 2>&1
if [ $? -ne 0 ] ; then
echo "Fichier inexistant."
fi |
---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.