Tester caracteres script

bonjour,
je cherche à tester une chaine de caracteres en premier argument d'un script , à savoir si cet argument est un fichier ou un dossier, si cet argument contient des chiffres ou des lettres ; comment chercher un caractere dans un argument (pas dans un fichier )
merci
Configuration: Windows XP
Firefox 1.5.0.11

3 réponses

  1. Modérateur
    Re-
    [jp@MDK tmpfs]$ echo aBcDeF | egrep '^[a-zA-Z]+$'
    aBcDeF
    
    [jp@MDK tmpfs]$ echo $?
    0
    
    [jp@MDK tmpfs]$ echo aBc222DeF | egrep '^[a-zA-Z]+$'
    
    [jp@MDK tmpfs]$ echo $?
    1
    
    [jp@MDK tmpfs]$ 
    En fait si la chaîne est entièrement alphabétique, la chaîne est retournée et le code retour ($?) est égal à 0 (zéro).

    Si la chaîne n'est pas entièrement alphabétique, rien n'est retournée et le code retour ($?) est égal à 1 (un).

    C'est ce code retour qu'il faut testé...
    0
    1. Modérateur
      Salut lulut,

      je cherche à tester une chaine de caracteres, à savoir si cet argument :

      est un fichier :
      if [ -f "argument" ]; then...fi
      test -f "argument" ; echo "$?"


      ou un dossier :
      if [ -d "argument" ]; then...fi


      si cet argument contient exclusivement des chiffres :
      echo "argument" | egrep '^[0-9]+$'


      ou exclusivement des lettres :
      echo "argument" | egrep '^[a-zA-Z]+$'
      0
      1. merci bien ;) , une autre petite question : que renvoie la valuer
        echo "argument" | egrep '^[a-zA-Z] +$' ???
        car en fait je veux tester cette valeur donc mettre un if devant
        je veux dire par exemple si cette valeur = d alors telle instruction
        mais ça plante
        0