programmation_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édenteProchaine révisionLes deux révisions suivantes | ||
programmation_bash [2009/04/06 08:40] – thierry | programmation_bash [2009/06/24 11:20] – thierry | ||
---|---|---|---|
Ligne 69: | Ligne 69: | ||
echo "> $line" | echo "> $line" | ||
done | done | ||
+ | |||
+ | ===== regex ===== | ||
+ | |||
+ | #!/bin/sh | ||
+ | | ||
+ | ARG=" | ||
+ | | ||
+ | if [[ " | ||
+ | echo " | ||
+ | echo " | ||
+ | fi | ||
+ | |||
+ | Avec gnu bash <= 3.1, test: | ||
+ | $ ./t option=1234 | ||
+ | option | ||
+ | 1234 | ||
+ | |||
+ | Le problème, sous Lenny, ca ne fonctionnera plus a cause des " | ||
+ | Quand ce n'est pas possible (a cause des espaces par exemple), il faut mettre le regex dans une variable. | ||
+ | |||
+ | Donc, ecrire sans " | ||
+ | ... | ||
+ | if [[ " | ||
+ | ... | ||
+ | |||
+ | $ sh --version | ||
+ | GNU bash, version 3.2.39(1)-release (i486-pc-linux-gnu) | ||
+ | Copyright (C) 2007 Free Software Foundation, Inc. | ||
+ | |||
+ | ===== Delimiteurs ===== | ||
+ | Lien: http:// | ||
+ | |||
+ | Exemple: | ||
+ | #!/bin/sh | ||
+ | | ||
+ | cat /etc/passwd | while read line; do | ||
+ | | ||
+ | IFS=":" | ||
+ | read username pass auid agid agroup ahome ashell <<EOF | ||
+ | $line | ||
+ | EOF | ||
+ | | ||
+ | echo " | ||
+ | echo " | ||
+ | | ||
+ | done | ||
+ | | ||
+ | unset IFS | ||
+ | |||
+ | #!/bin/sh | ||
+ | | ||
+ | IFS=":" | ||
+ | read first_name last_name | ||
+ | | ||
+ | echo "1: $first_name" | ||
+ | echo "2: $last_name" | ||
+ | | ||
+ | unset IFS | ||
+ | |||
+ | Output du dernier exemple: | ||
+ | 1: hello | ||
+ | 2: ducon | ||
programmation_bash.txt · Dernière modification : 2010/04/29 09:32 de thierry