"bash: [: too many arguments".
Fermé
michel42
-
23 juin 2014 à 13:08
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 23 juin 2014 à 15:15
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 23 juin 2014 à 15:15
A voir également:
- Bash too many arguments
- Many cam - Télécharger - TV & Vidéo
- Hiberfil.sys too big - Guide
- Bash arguments - Astuces et Solutions
- Minimal bash-like line editing is supported ✓ - Forum Linux / Unix
- Bash permission non accordée - Forum Shell
2 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
23 juin 2014 à 13:49
23 juin 2014 à 13:49
Salut,
L'erreur vient du fait que ta syntaxe
En fait c'est comme si tu écrivais :
De plus, ton test est inutile, la commande
L'erreur vient du fait que ta syntaxe
if [ -d $REP2 ]une fois développée par le shell ne correspond plus à l'attente du test.
En fait c'est comme si tu écrivais :
test -d /usr/local/applications/toto/nettoyage /usr/local/applications/tata/nettoyage /usr/local/applications/titi/nettoyage etc.La commande
test -dn'attend qu'un paramètre derrière et non pas plusieurs, sauf si on emploie l'option
-aou
-o;-(
De plus, ton test est inutile, la commande
findseule suffit, elle fera le tri d'elle même. Si elle trouve un dossier nettoyage elle exécutera le reste de la commande, dans le cas contraire elle ne fera rien.
Je dois donc remplacé la commande -d par la commande -a ou -o ? ou dois-je mettre la commande avec le -d aussi.
Merci de votre réponse
Merci de votre réponse
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
23 juin 2014 à 14:57
23 juin 2014 à 14:57
Euh... non, pas tout a fait ;-\
La syntaxe pour tester plusieurs paramètres est la suivante :
Mais comme précisé dans ma réponse précédente, à mon avis ces tests ne servent à rien. La commande
La syntaxe pour tester plusieurs paramètres est la suivante :
if [ -d toto -o -d titi -o -d tata ]; then ... else ... fi
Mais comme précisé dans ma réponse précédente, à mon avis ces tests ne servent à rien. La commande
finddevrait faire le boulot toute seule :
find ${REP} ${REP2} -maxdepth 1 -ctime +10 -exec rm -rf {} \; 2>/dev/null
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
23 juin 2014 à 15:11
23 juin 2014 à 15:11
Non ! Un répertoire par argument :
if [ -d /usr/local/applications/rep1/nettoyage -o -d /usr/local/applications/rep2/nettoyage -o -d etc.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
23 juin 2014 à 15:15
23 juin 2014 à 15:15