SHELL OU
Résolu
tlep
Messages postés
597
Statut
Membre
-
dubcek Messages postés 18627 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18627 Date d'inscription Statut Contributeur Dernière intervention -
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 :-)
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 :-)
Configuration: Windows XP Firefox 2.0.0.4
6 réponses
-
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 -
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 :-( -
Si le script est exécuté sans paramètre, $1 est vide et le test devient if [ $# -lt 1 -o !-d ];then
-
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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
ah ben je m'en sors en mettant tout simplement:
if [ !-d $1 ];then
mais çà n'explique pas le problème :-) -
faut-il un espace entre ! et -d ?
si $1 contient des blancs, mettre des "