Tester caracteres script

Fermé
lulut - 29 mai 2007 à 21:34
 lulut - 29 mai 2007 à 23:31
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
A voir également:

3 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
29 mai 2007 à 22:47
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
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
29 mai 2007 à 23:18
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
nickel merci bien :-)
0