4 votes

Aide sur les instructions conditionnelles de zsh

Je me sens un peu bête en ce moment :

Pourquoi mon contionnel est toujours vrai ?

J'ai essayé

# this should let me know what's not a directory or 
# symbolic link.
whoa=`find ${MUSICDIR} ! -type l ! -type d | wc -l`

# I would expect if it's 0 (meaning nothing was found) that
# one of these statements would evaluate to false, but so far
# it's always evaluating to true
if [[ "${whoa}" != "0" ]]
    do something
fi
if [[ ${whoa} -gt 0 ]]
    do something
fi

Qu'est-ce que je rate ?

9voto

Roy Rico Points 5558

Il s'avère que j'ai oublié le "alors" après le "si".

devrait être

if [[ "${whoa}" != "0" ]]
then
    do something
fi

1voto

Keith Points 7743

Les backticks collectent les stdout du sous-processus, et whoa contiendra le texte, et non le niveau d'erreur. Vous pouvez utiliser $? pour obtenir le niveau d'erreur de la dernière commande.

Mais si vous utilisez find, vous pouvez utiliser son exec pour faire quelque chose.

Vous pouvez également utiliser le type f pour fichier, pour trouver un fichier régulier.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X