Dans un script bash
, je dois vérifier l'existence de plusieurs fichiers.Bash: Comment vérifier si certains fichiers existent?
Je sais une façon maladroite de le faire, ce qui est la suivante, mais cela voudrait dire que mon programme principal doit être au sein de cette structure imbriquée laid:
if [ -f $FILE1 ]
then
if [ -f $FILE2 ]
then
echo OK
# MAIN PROGRAM HERE
fi
fi
La version suivante ne fonctionne pas:
([ -f $FILE1 ] && [ -f $FILE2 ]) || (echo "NOT FOUND"; exit 1)
echo OK
Il imprime
NOT FOUND
OK
y at-il une façon élégante de faire de ce droit?
MISE À JOUR: Voir la réponse acceptée. De plus, en termes d'élégance J'aime Jonathan Leffler's answer:
arg0=$(basename $0 .sh)
error()
{
echo "$arg0: [email protected]" 1>&2
exit 1
}
[ -f $FILE2 ] || error "$FILE2 not found"
[ -f $FILE1 ] || error "$FILE1 not found"
Merci, ça a l'air bien. Juste le 'ou' (||) devrait être un 'et' (&&), je suppose. – Frank
fixe déjà :) difficile avec la logique dans la soirée :) –