Un pense-bête

Trucs de geek : Bouts de scripts

Cet article regroupe des trucs trouvés dans des scripts bash :

Connaître le no du groupe vboxusers

$ grep vboxusers /etc/group | cut -d':' -f 3

Un script avec un menu et un tableau :

#!/bin/bash
declare -a PROGRAMS
PROGRAMS=([1]="/bin/ls ."  [2]="/bin/ls -l .")

while  read -p "Choisissez le/les programmes à installer.
- 1 pour le programme 1
- 2 pour le programme 2
Appuyez sur la touche souhaiter, puis faites ENTER." touche ; do
        case $touche in
                q|Q)
                        exit;;
                1|2)
                        eval ${PROGRAMS[$touche]} ;;
                *)
                        echo "Choix non valide"
        esac
done

 

 L'interprétation ou non des commandes.

Si vous souhaitez afficher une variable d'environnement ou une commande sous son nom dans un script sans qu'elle soit affichée ou exécutée, vous devez utiliser la quote simple. Comparaez les deux synthaxes suivantes ;

$ echo $PATH

et

$ echo '$PATH'

Dans la même veine la quote double a un autre comportement : elle permet d'interpréter les commandes dans des lignes de texte. Un exemple est plus parlant :

$ echo "Le PATH est $PATH"

donne

# Le path est /usr/java/jre1.7.0_05/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/oracle/11.2/client64//bin

 

Faire des calciuls : c'est tout bête mais il faut le savoir, la forme moderne est $(( )). Exemple :

# echo $((5+3))

Autre solution : bc à saisir directement à la console. Ensuite on peut saisir sur chaque ligne les calculs à réaliser et le résultat vous est affiché en dessous. Il faut saisir 'quit' pour en terminer.

#bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
5+3
8
23+5*5
48
quit

Modifié le 22/12/2016

Tags: geek, scripts, bash