bonjour à tous,
ca veut dire quoi cette expression:
" > /dev/null "
le ">" pour dire quoi et "/dev/null" ca signifie quoi?
merci bien
bonjour à tous,
ca veut dire quoi cette expression:
" > /dev/null "
le ">" pour dire quoi et "/dev/null" ca signifie quoi?
merci bien
Bonjour,
le ">" veux dire redirection de la sortie standard
et le /dev/null c'est un fichier qui sert grosomodo de poubelle.
donc l'expresion "> /dev/null" envoie la sortie standard dans /dev/null en d'autre terme suprime la sortie standard.
Cordialement.
Salut,
signifie envoyer le résultat de ce qui précéde vers
peut être considéré comme un trou noir. C'est à dire une poubelle sans trace.
Code : Sélectionner tout - Visualiser dans une fenêtre à part /dev/null
signifie donc envoyer le résultat de ce qui précéde (souvent des messages de status de résultat) dans le trou noir (poubelle) du système.
Code : Sélectionner tout - Visualiser dans une fenêtre à part > /dev/null
Winnt
Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
Pensez au boutonsi votre problème est résolu.
C'est en Linuxant qu'on devient .... geek
Et c'est en LateXant qu'on devient flemmard
Mon blog tout neuf.
Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.
merci bien pour vous
c claire ce que vous dites mais dans ce contexte je la comprends pas:
en fait pour tester si un parametre est numerique ou non il met
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if (`expr $1 + 1` > /dev/null); then echo "numerique"
merci bcp
Salut,
fait l'addition de $1 et 1 et retourne le résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part `expr $1 + 1`
Donc on envoie le résultat à /dev/null (afin de ne pas polluer l'affichage).
Si l'addition s'est correctement passée (sans message d'erreur) on affiche le mot "numerique" à l'écran.
Winnt
Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
Pensez au boutonsi votre problème est résolu.
C'est en Linuxant qu'on devient .... geek
Et c'est en LateXant qu'on devient flemmard
Mon blog tout neuf.
Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.
donc si $1 vaut -1 cela donnera un résultat erroné…
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 The expr utility exits with one of the following values: 0 the expression is neither an empty string nor 0. 1 the expression is an empty string or 0. 2 the expression is invalid.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 #!/bin/sh if test $1 -eq $1 &> /dev/null then echo "numerique" fi
Bonjour,
Si l'on veut être précis, il est nécessaire d'expliquer deux choses, au moins:
- La plupart des commandes ont une sortie "texte", visible par l'utilisateur. Par exemple: ls toto va me donner 'toto' si le fichier existe, sinon 'ls: toto: No such file or directory' (en anglais chez moi).
- Mais les commandes ont aussi une valeur de retour, invisible, qui dit comment s'est déroulé la commande: 0 --> tout va bien, 1 --> erreur...
Dans un script, on teste les valeurs de retour sans mettre de crochet:
Il est à remarquer que si toto existe, alors ls renverra 0 et le if l'interprétera comme true. Étrange n'est-ce pas? Et toute valeur non-nulle (une commande renvoyant une erreur) sera interprétée comme false.
Code : Sélectionner tout - Visualiser dans une fenêtre à part if ls toto; then echo "toto existe"; else echo "toto n'existe pas"; fi
Mais il n'est pas très joli de voir s'afficher les résultats intermédiaires: dans notre cas, si toto n'existe pas, il sera affiché 'ls: toto: No such file or directory' puis 'toto n'existe pas'. Pour éviter cela, on supprime les sorties standard (mais juste pour la commande) de la manière suivante:
PS: pour vérifier qu'une variable est numérique en Bash, on fait:
Code : Sélectionner tout - Visualiser dans une fenêtre à part if ls toto &> /dev/null; then echo "toto existe"; else echo "toto n'existe pas"; fi
Code : Sélectionner tout - Visualiser dans une fenêtre à part if [[ $var =~ [[:digit:]]+ ]]; then echo "numérique"; else echo "non numérique"; fi
merci beaucoup![]()
faites quand même attention au test avec l'expression [:digit:] :
telle qu'écrite elle teste si la variable contient des digits…
pas qu'elle ne contienne QUE des digits et éventuellement commence par + ou - …
est une regex plus correcte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ^[+|-]{0,1}[[:digit:]]+$
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 #!/bin/sh if [[ $# -lt 2 ]]; then echo "Usage: $0 PATTERN STRINGS..." exit 1 fi regex=$1 shift echo "regex: $regex" echo while [[ $1 ]] do if [[ $1 =~ $regex ]]; then echo "$1 matches" i=1 n=${#BASH_REMATCH[*]} while [[ $i -lt $n ]] do echo " capture[$i]: ${BASH_REMATCH[$i]}" let i++ done else echo "$1 does not match" fi shift done
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 ./testregex "^[+|-]{0,1}[[:digit:]]+$" +112 -10 10 0 a1 1a ---1 +-1 -+1 regex: ^[+|-]{0,1}[[:digit:]]+$ +112 matches -10 matches 10 matches 0 matches a1 does not match 1a does not match ---1 does not match +-1 does not match -+1 does not match
Bonsoir,
Une petite erreur : le ou n'a pas besoin d'être utilisé entre crochets, mais entre parenthèses.
Il provoque même une erreur :
Il faudrait plutôt utiliser
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ./testregex "^[+|-]{0,1}[[:digit:]]+$" +112 '|15' regex: ^[+|-]{0,1}[[:digit:]]+$ +112 matches |15 matches
Code : Sélectionner tout - Visualiser dans une fenêtre à part "^[+-]?[[:digit:]]+$"
Heu... nous étions partis sur la signification de > /dev/null avec en question subsidiaire la manière de détecter qu'une variable est numérique... ou pas. Et nous voilà à utiliser le tableau BASH_REMATCH... sans explication. D'ailleurs, quel est l'intérêt des sous-expressions parenthésées dans la détection des digits?
Partager