A voir également:
- Shell if -z
- Code ascii de a à z - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Cpu z download - Télécharger - Informations & Diagnostic
- Free z - Guide
- Z-library - Accueil - Services en ligne
9 réponses
Donc si je résume :
-lt (inférieur)
-le (inférieur ou égale)
De quelle manière teste t'on :
superieur et superieur ou égale ?
Encore une fois merci d'être là !
-lt (inférieur)
-le (inférieur ou égale)
De quelle manière teste t'on :
superieur et superieur ou égale ?
Encore une fois merci d'être là !
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
8 mai 2007 à 00:01
8 mai 2007 à 00:01
Salut,
il n'en manque pas un bout ???
;-)))
il n'en manque pas un bout ???
;-)))
Ok, je viens de comprendre, tous shell-script est lancée dans un sous shell, et ne peut donc pas modifier le shell parent, en revanche la command source permet de modifier le shell courant !
Ca c'est bon à savoir, je te remercie pour l'explication avec les scripts !
Ca c'est bon à savoir, je te remercie pour l'explication avec les scripts !
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
8 mai 2007 à 00:17
8 mai 2007 à 00:17
Copier/Coller de l'expression de momsse...
Note : L'espace entre les 2 crochets fermants de l'expression est à supprimer. Il n'est ici que pour palier au désagrément de certaines balises de mise en forme du site CCM.
Note : L'espace entre les 2 crochets fermants de l'expression est à supprimer. Il n'est ici que pour palier au désagrément de certaines balises de mise en forme du site CCM.
if [[ ( $(wc -l < $2) -lt $1 ) || ( $1 -le 0 ) ] ]
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
8 mai 2007 à 00:30
8 mai 2007 à 00:30
Re-
Apparemment on teste ( [[ ) que la valeur du résultat du nombre de ligne (wc -l) contenu dans le fichier passé en paramètre ($2) est inférieur (-lt) au 1er paramètre ($1), et dans le cas contraire (||) on teste si le 1er paramètre est inférieur ou égal à zéro (-le).
Apparemment on teste ( [[ ) que la valeur du résultat du nombre de ligne (wc -l) contenu dans le fichier passé en paramètre ($2) est inférieur (-lt) au 1er paramètre ($1), et dans le cas contraire (||) on teste si le 1er paramètre est inférieur ou égal à zéro (-le).
Merci !
Je n'arrive pas à comprendre le résultat de ce script (donnée en exercice)
Théoriquement il est censé crée un repertoire avec comme nom pour s'y deplacer, en pratique il ne fait que le creer et ne s'y déplace pas...
C'est pourtant un script simple !
Je n'arrive pas à comprendre le résultat de ce script (donnée en exercice)
#!/bin/sh mkdir $1 cd $1
Théoriquement il est censé crée un repertoire avec comme nom pour s'y deplacer, en pratique il ne fait que le creer et ne s'y déplace pas...
C'est pourtant un script simple !
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
8 mai 2007 à 10:49
8 mai 2007 à 10:49
Jette un oeil aux sous-shells.
Je ne comprend pas vraiment, je pense avoir compris le mécanisme de sous-shell, hors ici, je n'utilise pas de parenthèse donc, en théorie cela devrait modifier le bahs courant, de plus, le script semble équivalent à la commande suivante:
$ mkdir toto; cd toto
Comment faudrait-il appeler mon script pour qu'il ,puisse fonctionner ?
Merci de ton aide !
$ mkdir toto; cd toto
Comment faudrait-il appeler mon script pour qu'il ,puisse fonctionner ?
Merci de ton aide !
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
8 mai 2007 à 11:22
8 mai 2007 à 11:22
Re-
Pour bien comprendre le mécanisme, crées ces 2 petits scripts :
script 1
la commande "source" (voir le man bash) peut aussi s'écrire "." :
Pour bien comprendre le mécanisme, crées ces 2 petits scripts :
script 1
#! /bin/bash # foo.sh echo -e "Répertoire actuel :\c " pwd echo { echo -e "Création du répertoire $1\n" mkdir $1 echo -e "Déplacement dans le répertoire $1\n" cd $1 } echo -e "Nous sommes dans le répertoire :\c " pwd echo -e "\nBye bye."script 2
#! /bin/bash # bar.sh echo -e "Répertoire actuel :\c " pwd echo ( echo -e "Création du répertoire $1\n" mkdir $1 echo -e "Déplacement dans le répertoire $1\n" cd $1 ) echo -e "Nous sommes dans le répertoire :\c " pwd echo -e "\nBye bye."et lances-les respectivement comme suit :
sh foo.sh mon_rep source foo.sh mon_rep sh bar.sh source bar.shentre chaque commande n'oublie pas de détruire "mon_rep" ou alors change de nom de répertoire à chaque fois ;-))
la commande "source" (voir le man bash) peut aussi s'écrire "." :
source foo.shest équivalent à :
. foo.shPour voir directement le paragraphe concernant la commande "source" dans le man bash tapes :
man bash -P 'less -p "^ source"';-))
8 mai 2007 à 09:27
-lt = plus petit que (less than)
-le = plus petit ou égal (less or equal)
-ne = pas égal à (not equal)
-gt = plus grand que (greater than)
-ge = plus grand ou égal (greater or equal)
Tiens je crois que ça te sera très utile : http://abs.traduc.org/abs-4.2.01-fr/
Si la traduction n'est pas terminée, se rabattre vers la version antérieure : http://abs.traduc.org/abs-4.1-fr/
La VO : https://tldp.org/LDP/abs/html/