tech:notes_script_bash
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| tech:notes_script_bash [2026/04/25 10:08] – Jean-Baptiste | tech:notes_script_bash [2026/06/07 19:12] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | < | ||
| + | {{tag> | ||
| + | |||
| + | # Notes script bash | ||
| + | |||
| + | Voir | ||
| + | * https:// | ||
| + | * http:// | ||
| + | * http:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | |||
| + | Voir aussi : | ||
| + | * tinyramfs (implémentation initramfs écrite en shell POSIX | ||
| + | |||
| + | |||
| + | ## Variables | ||
| + | |||
| + | ### Fichier dans une variable - variable heredoc | ||
| + | |||
| + | ~~~bash | ||
| + | ETCHOSTS=$(cat << ' | ||
| + | 10.245.97.221 | ||
| + | 10.245.102.221 | ||
| + | EOF | ||
| + | ) | ||
| + | ~~~ | ||
| + | |||
| + | ## Les boucles | ||
| + | |||
| + | Voir aussi : | ||
| + | * [[Notes parallel multithread multicore process shell|Les commandes Xargs et Find]] qui peuvent être des alternatives aux boucles | ||
| + | |||
| + | |||
| + | ### For | ||
| + | |||
| + | ~~~bash | ||
| + | for (( i=1; $i<=10; i=i+1 )) | ||
| + | do | ||
| + | echo $i | ||
| + | done | ||
| + | ~~~ | ||
| + | |||
| + | Voir exemple avec `seq` ci-dessous | ||
| + | |||
| + | |||
| + | ### seq | ||
| + | |||
| + | ~~~bash | ||
| + | #for i in $(seq 10) | ||
| + | for i in $(seq 1 10) | ||
| + | do | ||
| + | echo $i | ||
| + | done | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | for i in {1..5} | ||
| + | do | ||
| + | echo $i | ||
| + | done | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | seq -f " | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | seq -f " | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | seq -s - 8 | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | ### pb curl break | ||
| + | |||
| + | `fic.lst` | ||
| + | ~~~ | ||
| + | foo | ||
| + | bar | ||
| + | ~~~ | ||
| + | |||
| + | `plop_sleep.sh` | ||
| + | ~~~bash | ||
| + | #! /bin/bash | ||
| + | |||
| + | while read -r var | ||
| + | do | ||
| + | echo $var | ||
| + | timeout 1 sleep inf | ||
| + | done < fic.lst | ||
| + | ~~~ | ||
| + | |||
| + | `plop_curl.sh` | ||
| + | ~~~bash | ||
| + | #! /bin/bash | ||
| + | |||
| + | while read -r var | ||
| + | do | ||
| + | echo $var | ||
| + | timeout 1 curl -s telnet:// | ||
| + | done < fic.lst | ||
| + | ~~~ | ||
| + | |||
| + | ~~~ | ||
| + | $ ./ | ||
| + | foo | ||
| + | bar | ||
| + | |||
| + | $ ./ | ||
| + | foo | ||
| + | ~~~ | ||
| + | |||
| + | Contournement | ||
| + | |||
| + | `plop_curl_2.sh` | ||
| + | ~~~bash | ||
| + | #! /bin/bash | ||
| + | |||
| + | while read -r var | ||
| + | do | ||
| + | echo $var | ||
| + | echo timeout 1 curl -s telnet:// | ||
| + | done < fic.lst | ||
| + | ~~~ | ||
| + | |||
| + | Vraie solution | ||
| + | |||
| + | `plop_curl_2.sh` | ||
| + | ~~~bash | ||
| + | #! /bin/bash | ||
| + | |||
| + | while read -r var | ||
| + | do | ||
| + | echo $var | ||
| + | timeout 1 curl -s telnet:// | ||
| + | done < fic.lst | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | ### Gérer les locks | ||
| + | |||
| + | ~~~bash | ||
| + | flock -n / | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | ## bash Options | ||
| + | |||
| + | ### Bash suid binary privilege escalation | ||
| + | |||
| + | ~~~bash | ||
| + | sudo cp -p / | ||
| + | sudo chmod u+s / | ||
| + | / | ||
| + | ~~~ | ||
| + | |||
