Bash : comparer la taille de deux fichiers
Résolu
mecdunet
Messages postés
118
Statut
Membre
-
mecdunet Messages postés 118 Statut Membre -
mecdunet Messages postés 118 Statut Membre -
Bonjour,
j'essaie de comparer la taille de deux fichiers, pour cela je pensais utiliser ça :
Malheureusement, j'ai une erreur ./biggest.sh: line 8: [: tmp: integer expression expected;
si je comprends bien tmp et tmp1 ne sont pas des int, pourtant mes commandes ne sont-elles pas censés garder QUE le résultats de wc -c ?
Merci,
j'essaie de comparer la taille de deux fichiers, pour cela je pensais utiliser ça :
if [ -d "dico" ]; then
nom=""
for fichier in dico/*; do
tmp=" wc -c < $fichier "
tmp1=" wc -c $nom | awk '{print $1}' "
if [ tmp -gt tmp1 ] ; then
nom=$fichier
fi
done
fi
Malheureusement, j'ai une erreur ./biggest.sh: line 8: [: tmp: integer expression expected;
si je comprends bien tmp et tmp1 ne sont pas des int, pourtant mes commandes ne sont-elles pas censés garder QUE le résultats de wc -c ?
Merci,
Configuration: Windows / Opera Next 63.0.3368.107
A voir également:
- Comparateur de taille entre deux personnes
- Bingo bash free - Télécharger - Divers Jeux
- Bash pause ✓ - Forum Shell
- Bash addition - Forum Programmation
- Bash permission non accordée - Forum Shell
- Bash list ✓ - Forum Shell
1 réponse
Bonjour,
j'aurais dit qu'il faut utiliser une quote inversée comme
mais je viens de lire : https://forums.commentcamarche.net/forum/affich-37620041-recuperer-le-resultat-d-une-commande-dans-une-variable
Cdlt
tmp="...."cela n’exécute pas la commande, la variable contient le texte de la commande,
j'aurais dit qu'il faut utiliser une quote inversée comme
tmp=`commande `
mais je viens de lire : https://forums.commentcamarche.net/forum/affich-37620041-recuperer-le-resultat-d-une-commande-dans-une-variable
Cdlt
Effectivement, les quotes inverses sont obsolètes depuis belle lurette, même si elles font quand même le job.
La syntaxe est de plus beaucoup plus lisible que dans certaines conditions (interprétation visuelle shell, éditeur, navigateur, etc.).
Je rajouterai aussi, qu'une fois une variable déclarée, sa syntaxe pour l'utiliser est de la forme
${variable}. Les accolades étant facultatives, mais pas le signe "$" (dollar).À noter que les guillemets autour de la variables sont eux aussi très largement souhaitable, sauf à de rares exceptions, et à condition de savoir ce qu'on fait…
Bon finalement j'ai :
les echo me servent à savoir ce que contient tmp et tmp1, or il m'affiche bien des entiers sur la console, pourtant je continue toujours à recevoir l'erreur :
./biggest.sh: line 10: [: tmp: integer expression expected
Comment-cela se fait ? :/