SHELL OU

Résolu/Fermé
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 - 20 juil. 2007 à 11:35
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 - 20 juil. 2007 à 14:36
Bonjour,

je ne comprends pas pourquoi dans un script "backup.logs" :

if [ $# -lt 1 -o !-d $1 ];then

me renvoie :

./backup.logs: line 3: [: too many arguments

C'est le "-o !-d $1" qui pose problème !

Mais je ne comprends pas pourquoi ??

Merci :-)
A voir également:

6 réponses

freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161
20 juil. 2007 à 12:02
Bonjour
Tout d'abord, je ne crois pas que !-d soie une option valide
Exécute ceci dans un shell pour comprendre un peu plus
man test

Si tu ne comprend pas, envoie nous le résultat de la commande
test --help
Mais je ne sais pas si cela marchera
0
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
20 juil. 2007 à 12:20
Si bien-sur: !-d signifie "n'est pas un répertoire".

C'est quand je l'utilise avec un OU (-o) que çà ne marche po :-(
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 622
20 juil. 2007 à 12:37
Si le script est exécuté sans paramètre, $1 est vide et le test devient if [ $# -lt 1 -o !-d ];then
0
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
20 juil. 2007 à 14:08
Oui, mais c'est quand il y a un paramètre que çà met l'erreur;
en fait l'erreur vient de "-o !-d $1" -> too many arguments
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
20 juil. 2007 à 14:10
ah ben je m'en sors en mettant tout simplement:
if [ !-d $1 ];then

mais çà n'explique pas le problème :-)
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 622
20 juil. 2007 à 14:36
faut-il un espace entre ! et -d ?
si $1 contient des blancs, mettre des "
0