Je veux vérifier si un fichier existe ou non avec le nombre de lignes = 4 dans une seule condition. Quelqu’un peut-il aider ici.
if [[ -f report]] && [[`wc -l report` -eq 4 ]]; then echo " Proceed further" else exit 1 fi
C’est plus simple:
{ [ `wc -l < report` -eq 4 ] || exit; } 2>/dev/null echo " Proceed further"
Remarques:
Si le rapport existe et a 4 lignes de long, alors le wc -l report
renvoie:
4 report
… qui -eq
ne peut pas comprendre. A la place, faites wc -l < report
qui produit un -eq
friendlyly:
4
Il n’est pas nécessaire de vérifier si le rapport existe, car la redirection <
fera de toute façon et renvoie le même code d’erreur.
Codes de sortie plus spécifiques. Si le rapport n'existe pas, le code de sortie est 2 . Si le rapport a 5 lignes, le code de sortie est 1 .