Csh echo " " puis test if.???
Résolu/Fermé
Carri€
Messages postés
41
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
27 novembre 2007
-
15 oct. 2007 à 11:02
wx - 23 nov. 2009 à 14:38
wx - 23 nov. 2009 à 14:38
A voir également:
- Csh echo " " puis test if.???
- Test performance pc - Guide
- Test composant pc - Guide
- Redmi note 13 5g test - Accueil - Téléphones
- Test performance pc gratuit - Accueil - Utilitaires
- Echo discord - Forum Casque et écouteurs
5 réponses
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 621
15 oct. 2007 à 14:27
15 oct. 2007 à 14:27
définir la variable au début
set Var=""
sinon utiliser:
${?var}
Substitutes the string 1 if var is set or 0 if it is
not set.
set Var=""
sinon utiliser:
${?var}
Substitutes the string 1 if var is set or 0 if it is
not set.
Carri€
Messages postés
41
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
27 novembre 2007
29
15 oct. 2007 à 15:13
15 oct. 2007 à 15:13
dubcek, je te remercie.
Quand je fais set Var ="" ca ne donne rien avec mon test if. Mais c'est deja ca de pris car la syntaxe du if n'etait pas bonne.;o)
Autrement lorsque je fais echo ${?var} ca me donne 1 alors d'apres ce que tu m as dis c'est que ma variable contient bien quelque chose..on avance. Mais quoi? je ne sais. Elle devrait être un "space character" ou même une combinaison de plusieurs space character.
${?var} est marqué dans mes archives...héhé bien pratique.
Je suis en train d'étudier la piste du awk pour tester si ma variable est un nombre ou non. Pour moi c'est compliqué à faire mais le raisonnement sera peut être plus simple et s'appliquera à un cas plus général. Car finalement, je me contenterai de savoir si cette variable est un nombre ou non, peux importe ce que c'est d'autre (meme si j'aimerai bien le savoir).
Quand je fais set Var ="" ca ne donne rien avec mon test if. Mais c'est deja ca de pris car la syntaxe du if n'etait pas bonne.;o)
Autrement lorsque je fais echo ${?var} ca me donne 1 alors d'apres ce que tu m as dis c'est que ma variable contient bien quelque chose..on avance. Mais quoi? je ne sais. Elle devrait être un "space character" ou même une combinaison de plusieurs space character.
${?var} est marqué dans mes archives...héhé bien pratique.
Je suis en train d'étudier la piste du awk pour tester si ma variable est un nombre ou non. Pour moi c'est compliqué à faire mais le raisonnement sera peut être plus simple et s'appliquera à un cas plus général. Car finalement, je me contenterai de savoir si cette variable est un nombre ou non, peux importe ce que c'est d'autre (meme si j'aimerai bien le savoir).
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 621
15 oct. 2007 à 15:31
15 oct. 2007 à 15:31
hello
ce test, c'est juste pour tester si la variable est définie, alors je peux l'afficher:
if ( $?Var ) then
echo "$Var"
les shells ou awk, n'ont pas des variables typées :
set var=1 var est numérique
set var="hello" var est un string
mais je peux utiliser un string de chiffres set var="123"
c'est à l'utilisateur de faire les bons tests
pour utiliser des espaces dans une variable, il faut utiliser quote ou guillemets: set var=" a "
voir dans man test, on teste les nombres avec -eq et les strings avec =
ce test, c'est juste pour tester si la variable est définie, alors je peux l'afficher:
if ( $?Var ) then
echo "$Var"
les shells ou awk, n'ont pas des variables typées :
set var=1 var est numérique
set var="hello" var est un string
mais je peux utiliser un string de chiffres set var="123"
c'est à l'utilisateur de faire les bons tests
pour utiliser des espaces dans une variable, il faut utiliser quote ou guillemets: set var=" a "
voir dans man test, on teste les nombres avec -eq et les strings avec =
Carri€
Messages postés
41
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
27 novembre 2007
29
15 oct. 2007 à 15:37
15 oct. 2007 à 15:37
okkkk j'y vois déjà un peu mieu...je vais méditer la dessus et reviendrai dès que j'ai du nouveau, je vais essayer de suite.(de toute facon je suis toujours dessus depuis ce matin lol)
Merci bien dubcek. :o)
Merci bien dubcek. :o)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Désolé pour le délai....
Alors pour faire cours et bien...lorsque je tape: if ( $?Var ) then
echo "$Var"
ca ne m'affcihe toujours rien puisqu'en effet j'ai découvert que ma variable faisait parti des caractères de contrôle. Pour le découvrir et afin d'effectuer mon test je suis passer par "awk". J'envoi ma variable a un petit programme qui va la tester:
echo $variable | awk -f Monprogramme.awk
Et dans Monprogramme.awk j'ai écrit:
#!/bin/awk
BEGIN{
}
/[([:cntrl:]+)] / {print 2}; ce qui affiche "2" si l'argument,ici la contenu de ma variable, est un caractere de controle.(resultat que j ai obtenu lorsque ca n'affichait rien).
{if (ARGC-0 == /:digit:/) {print 1}}; affiche "1" si ARGC-0 (eq $variable) est un digit....ce dont je voulais m'assurer au depart.
END{
}
Voili voilou! Y'a surement encore mieu mais je ne suis pas très à l'aise avec les classes [:digit:] etc... et pous le moment ca me suffit amplement!!!
Merci de votre aide.
Désolé pour le délai....
Alors pour faire cours et bien...lorsque je tape: if ( $?Var ) then
echo "$Var"
ca ne m'affcihe toujours rien puisqu'en effet j'ai découvert que ma variable faisait parti des caractères de contrôle. Pour le découvrir et afin d'effectuer mon test je suis passer par "awk". J'envoi ma variable a un petit programme qui va la tester:
echo $variable | awk -f Monprogramme.awk
Et dans Monprogramme.awk j'ai écrit:
#!/bin/awk
BEGIN{
}
/[([:cntrl:]+)] / {print 2}; ce qui affiche "2" si l'argument,ici la contenu de ma variable, est un caractere de controle.(resultat que j ai obtenu lorsque ca n'affichait rien).
{if (ARGC-0 == /:digit:/) {print 1}}; affiche "1" si ARGC-0 (eq $variable) est un digit....ce dont je voulais m'assurer au depart.
END{
}
Voili voilou! Y'a surement encore mieu mais je ne suis pas très à l'aise avec les classes [:digit:] etc... et pous le moment ca me suffit amplement!!!
Merci de votre aide.