19
0
Fork 0

ajout processus + conditions

This commit is contained in:
pdiogoantunes 2017-03-15 11:29:27 +01:00
parent e9d41b9d6d
commit 02ea06e954
1 changed files with 45 additions and 3 deletions

View File

@ -31,6 +31,15 @@ alt+d : Efface un mot à droite du curseur
## Variables
### Environnement
~~~{.bash}
$PPID
$BASHPID
$!
$$
~~~
### Initialiser
~~~{.bash}
@ -59,9 +68,36 @@ echo $var "joue au $foot"
#car sinon c'est bien le contenu de la variable $foot qui sera remplacé et non $foo
~~~
## Récupérer tout stdin dans une variable
## Conditions
### Complet
~~~{.bash}
true && echo "C'est toujours vrai"
false || echo "Ça sera toujours vraiment faux"
[ $? -eq 0 ] && { echo "tâche"; sleep 1; echo -e "\e'a plus!!" }
~~~
## Processus
~~~{.bash}
( echo "Je suis un fils du script principal, mais on attend que je meure."; exit 0; )
( echo "Libreee !"; yes "Libre je dis !"; ) &
sleep 10 && kill $! #on tue le dernier fils créé
~~~
> Note: Dans une boucle, ne pas créer de process via *(* *)* sinon un usage comme **break** ou **continue**, ... ne fonctionnera pas :
> ~~~{.bash}
> while :
> do
> : && { echo "Stop !"; break; }
> done
> # ( echo "Stop !"; break; ) dans cet exemple ne quittera pas la boucle -car break dans un process fils-, et donc restera infini
> ~~~
## Astuces [concrètes]
### Récupérer tout stdin dans une variable
#### Complet
~~~{.bash}
var="$(cat <&0)"
@ -69,7 +105,7 @@ var="$(cat <&0)"
var="$(cat -)"
~~~
### Ligne par ligne
#### Ligne par ligne
~~~{.bash}
var=
@ -77,4 +113,10 @@ while read ligne
do
var="${var}${ligne}"
done <&0
~~~
autrement :
~~~{.bash}
cat <&0 | (while read ligne; do ... done)
~~~