Shell
Fermé
raidouane_1986
-
26 oct. 2008 à 02:05
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 26 oct. 2008 à 11:48
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 26 oct. 2008 à 11:48
A voir également:
- Shell
- Classic shell windows 10 français - Télécharger - Personnalisation
- Efi shell - Forum Windows 10
- Efi shell version 2.31 - Forum Programmation
- Secure shell - Télécharger - Divers Web & Internet
- Retour à la ligne shell ✓ - Forum Shell
4 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
26 oct. 2008 à 09:00
26 oct. 2008 à 09:00
Salut,
Voir dans la FAQ : Tester une variable numérique
Voir aussi cette discussion
Voir dans la FAQ : Tester une variable numérique
Voir aussi cette discussion
bonjour,
merci pour votre reponse,mais vous voulez me donnez le commentaire de ses 2 lignes de ce programme pour bien comprendre .
#!/bin/sh
# script_let.sh
var=$1
if let $var 2>/dev/null
then
echo "$var numérique"
else
echo "$var non numérique"
fi
les lignes sont :
# script_let.sh !!!
et
let $var 2>/dev/null !!!!
est vraiment mercii bcp.merci en avance
merci pour votre reponse,mais vous voulez me donnez le commentaire de ses 2 lignes de ce programme pour bien comprendre .
#!/bin/sh
# script_let.sh
var=$1
if let $var 2>/dev/null
then
echo "$var numérique"
else
echo "$var non numérique"
fi
les lignes sont :
# script_let.sh !!!
et
let $var 2>/dev/null !!!!
est vraiment mercii bcp.merci en avance
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
26 oct. 2008 à 11:42
26 oct. 2008 à 11:42
Salut,
2>/dev/null permet de ne pas afficher les messages d'erreur à l'écran (STDERR - sortie erreur)
Par erreur tu peux par exemple tester si 2a est numérique ou pas
En ce cas shell envoie un message d'erreur (voir en gras) sur STDERR
Cette erreur n'est pas affichée si on utilise 2>/dev/null
2>/dev/null permet de ne pas afficher les messages d'erreur à l'écran (STDERR - sortie erreur)
Par erreur tu peux par exemple tester si 2a est numérique ou pas
En ce cas shell envoie un message d'erreur (voir en gras) sur STDERR
lami20j@debian:~/trash$ cat ccm.sh #!/bin/sh var=$1 if let $var then echo "$var numérique" else echo "$var non numérique" fi lami20j@debian:~/trash$ sh ccm.sh 2 2 numérique lami20j@debian:~/trash$ sh ccm.sh aa aa non numérique lami20j@debian:~/trash$ sh ccm.sh 2a ccm.sh: line 4: let: 2a: value too great for base (error token is "2a") 2a non numérique
Cette erreur n'est pas affichée si on utilise 2>/dev/null
lami20j@debian:~/trash$ cat ccm.sh #!/bin/sh var=$1 if let $var 2>/dev/null then echo "$var numérique" else echo "$var non numérique" fi lami20j@debian:~/trash$ sh ccm.sh 2 2 numérique lami20j@debian:~/trash$ sh ccm.sh a a non numérique lami20j@debian:~/trash$ sh ccm.sh 2a 2a non numérique
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
26 oct. 2008 à 11:48
26 oct. 2008 à 11:48
Re-
# script_let.sh
Un dièse (#) en début de ligne signifie que la ligne est un commentaire et quelle ne sera pas interprétée par le shell.
Dans ce cas présent c'est une façon de présenter le script (son nom)
let $var 2>/dev/null
La commande "let" déclare une variable de type "entier" et de ce fait renvoie un code retour égal à "0" (vrai) si c'est le cas et un code retour égal à 1 (faux) dans le cas contraire, ce que vérifie le "if...then...else".
Le "2>/dev/null" n'est là que pour envoyer d'éventuels messages d'erreurs dans les oubliettes plutôt que sur la sortie standard (l'écran).
# script_let.sh
Un dièse (#) en début de ligne signifie que la ligne est un commentaire et quelle ne sera pas interprétée par le shell.
Dans ce cas présent c'est une façon de présenter le script (son nom)
let $var 2>/dev/null
La commande "let" déclare une variable de type "entier" et de ce fait renvoie un code retour égal à "0" (vrai) si c'est le cas et un code retour égal à 1 (faux) dans le cas contraire, ce que vérifie le "if...then...else".
Le "2>/dev/null" n'est là que pour envoyer d'éventuels messages d'erreurs dans les oubliettes plutôt que sur la sortie standard (l'écran).