SHELL OU

Résolu
tlep Messages postés 597 Statut Membre -  
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 :-)
Configuration: Windows XP
Firefox 2.0.0.4

6 réponses

  1. freto Messages postés 1543 Date d'inscription   Statut Membre Dernière intervention   165
     
    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
  2. tlep Messages postés 597 Statut Membre 118
     
    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
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    Si le script est exécuté sans paramètre, $1 est vide et le test devient if [ $# -lt 1 -o !-d ];then
    0
  4. tlep Messages postés 597 Statut Membre 118
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. tlep Messages postés 597 Statut Membre 118
     
    ah ben je m'en sors en mettant tout simplement:
    if [ !-d $1 ];then

    mais çà n'explique pas le problème :-)
    0
  7. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    faut-il un espace entre ! et -d ?
    si $1 contient des blancs, mettre des "
    0