Expression (Shell -script)
momsse
-
momsse -
momsse -
Bonsoir,
J'aurais besoin d'aide pour l'eclaircissement de ce test:
if
En fait je ne comprend pas en particulier ce que j'ai mis en gras, je remercie d'avance tous ceux qui prendront du temps pour m'expliquer un peu l'expression !
Merci d'avance
J'aurais besoin d'aide pour l'eclaircissement de ce test:
if
En fait je ne comprend pas en particulier ce que j'ai mis en gras, je remercie d'avance tous ceux qui prendront du temps pour m'expliquer un peu l'expression !
Merci d'avance
Configuration: Mac PowerPC Firefox 2.0.0.1
A voir également:
- Shell if -z
- Code ascii de a à z - Guide
- Classic shell - Télécharger - Personnalisation
- Gpu z - Télécharger - Informations & Diagnostic
- Cpu z - Télécharger - Informations & Diagnostic
- Trier de a à z excel - Guide
9 réponses
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 !
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
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).
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 !
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"';-))
-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/