Tester caracteres script

lulut -  
 lulut -
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. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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. lulut
       
      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
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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