J'écris un script bash en ce moment qui a une déclaration pour vérifier si un répertoire contient des choses.Bash IF erreurs de redirection de code de sortie
En ce moment, le code est
if [ "$(ls -A $APPLICATIONS)" ]; then
do something
else
do something else
fi
Cependant, lorsque le dossier est bien vide, je voudrais l'erreur de ls à supprimer. Normalement, il dirait "No tel fichier ou répertoire", mais je veux rediriger cela vers/dev/null.
J'ai essayé de faire
if [ "$(ls -A $APPLICATIONS &> /dev/null)" ]; then
Cela ne redirige tout vers/dev/null comme je voulais, mais il provoque aussi le répertoire à introuvable (essentiellement provoquant le code de sortie 1).
Quelle serait la bonne façon de procéder?
Un répertoire vide ne doit pas provoquer d'erreur. Vous obtiendrez seulement cette erreur si le répertoire lui-même n'existe pas, pas s'il est vide. – Barmar
Sauf si $ APPLICATIONS contient un caractère générique, par ex. '/ chemin/vers/répertoire/*' plutôt que juste le nom du répertoire. – Barmar
@Barmar Il s'avère une autre facette du problème, c'est que mon emplacement où le répertoire était supposé être avait ses propres problèmes. * facepalm * –