tech:bash-read
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:bash-read [2025/05/28 11:55] – Jean-Baptiste | tech:bash-read [2026/06/16 15:26] (Version actuelle) – Jean-Baptiste | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | < | ||
| + | {{tag> | ||
| + | |||
| + | # Bash Read lire affecter plusieurs variables en une seul fois | ||
| + | |||
| + | Voir aussi : | ||
| + | * Heredoc | ||
| + | |||
| + | ~~~ | ||
| + | -r : Prevents backslash escapes from being interprete | ||
| + | |||
| + | -t < | ||
| + | |||
| + | -n <max char> : Max char | ||
| + | |||
| + | -s : Secret / Silent | ||
| + | |||
| + | -p < | ||
| + | |||
| + | -a : Array | ||
| + | ~~~ | ||
| + | |||
| + | NOTE : Dans les scripts bash il est recommandé d' | ||
| + | |||
| + | Exemple : | ||
| + | |||
| + | ~~~bash | ||
| + | read a b c d <<< | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | Possible aussi d' | ||
| + | |||
| + | Autres liens : | ||
| + | * http:// | ||
| + | * http:// | ||
| + | * http:// | ||
| + | * http:// | ||
| + | |||
| + | Changement de la variable IFS | ||
| + | ~~~bash | ||
| + | old_IFS=" | ||
| + | export IFS="," | ||
| + | ~~~ | ||
| + | |||
| + | Exemple 1 | ||
| + | ~~~bash | ||
| + | unset a b c | ||
| + | read a b c <<< | ||
| + | echo -e "a: $a\nb: $b\nc: $c" | ||
| + | ~~~ | ||
| + | |||
| + | Exemple 2 | ||
| + | ~~~bash | ||
| + | unset a b c | ||
| + | IFS=',' | ||
| + | echo -e "a: $a\nb: $b\nc: $c" | ||
| + | ~~~ | ||
| + | |||
| + | Exemple 3 | ||
| + | ~~~bash | ||
| + | unset a b c | ||
| + | mkfifo /tmp/fifo | ||
| + | echo " | ||
| + | IFS=',' | ||
| + | echo -e "a: $a\nb: $b\nc: $c" | ||
| + | rm /tmp/fifo | ||
| + | ~~~ | ||
| + | |||
| + | Autre - exemple while read | ||
| + | ~~~bash | ||
| + | while IFS=$' \t\n' read ID NAME NOT_USED | ||
| + | do | ||
| + | echo -e "\t $ID $NAME" | ||
| + | done < < | ||
| + | ~~~ | ||
| + | |||
| + | ## Autres exemples | ||
| + | |||
| + | Trier des fichiers par ordre alphabétique à partir d'un champ à droite | ||
| + | ~~~bash | ||
| + | #! /bin/bash | ||
| + | |||
| + | set -e | ||
| + | set -o nounset | ||
| + | |||
| + | dir=" | ||
| + | |||
| + | decoupe_col() | ||
| + | { | ||
| + | local line=" | ||
| + | IFS=' | ||
| + | echo " | ||
| + | } | ||
| + | |||
| + | decoupe_line() | ||
| + | { | ||
| + | while read line | ||
| + | do | ||
| + | decoupe_col " | ||
| + | done < <(find " | ||
| + | } | ||
| + | |||
| + | trie() | ||
| + | { | ||
| + | decoupe_line | sort | ||
| + | } | ||
| + | |||
| + | trie | awk -F' | ||
| + | ~~~ | ||
| + | |||
| + | ### Mot de passe | ||
| + | |||
| + | ~~~bash | ||
| + | read -s PASSWORD | ||
| + | |||
| + | echo $PASSWORD | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | ### Read et find | ||
| + | |||
| + | source : https:// | ||
| + | ~~~bash | ||
| + | while IFS= read -r -d ` file | ||
| + | do | ||
| + | (( count++ )) | ||
| + | echo " | ||
| + | play " | ||
| + | done < < | ||
| + | echo " | ||
| + | ~~~ | ||
| + | |||
