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édente | ||
programmation_bash [2009/04/06 08:40] – thierry | programmation_bash [2010/04/29 09:32] (Version actuelle) – 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 | ||
+ | |||
+ | ===== LOCK ===== | ||
+ | Realiser un LOCK sur un scripte... | ||
+ | |||
+ | Lien: http:// | ||
+ | |||
+ | Pour resumer: la seule solution portable est d' | ||
+ | |||
+ | Voir aussi " | ||
+ | |||
+ | ===== TRAP ===== | ||
+ | |||
+ | Comment traper les signaux, ou simplement la sortie du script... | ||
+ | |||
+ | Lien: http:// | ||
+ | |||
+ | ====== awk ====== | ||
+ | |||
+ | ===== /etc/passwd ===== | ||
+ | |||
+ | cat /etc/passwd | awk -F':' | ||
programmation_bash.1239007253.txt.gz · Dernière modification : 2009/04/06 08:40 de thierry