Bash¶
Variables:¶
Incrémenter une variable:¶
i=$((i+1)) user 0m0.992s
i=$((i++)) user 0m0.964s
((i=i+1)) user 0m0.760s
((i+=1)) user 0m0.700s
((i++)) user 0m0.644s
((++i)) user 0m0.556s
let "i=i+1" user 0m1.116s
let "i+=1" user 0m1.100s
let "i++" user 0m1.008s
let i=i+1 user 0m0.952s
let i+=1 user 0m1.040s
let i++ user 0m0.820s
declare -i i; i=i+1 user 0m0.528s
declare -i i; i+=1 user 0m0.492s
i=0; i=$(expr $i + 1) user 0m5.464s
Beep:¶
Jouer un beep:
echo -en "\007"
echo -en '\a'
Chaine de caractères:¶
Concaténer une chaine:¶
upd+="$name "
Chemins:¶
Répertoire courant (pwd) , nom du script (basename), répertoire du script (dirname)
~/Documents/go $ nano chemins.sh
#!/usr/local/bin/bash
echo "Le script exécuté a comme basename `basename "$0"`, dirname `dirname "$0"`"
echo "Le répertoire courant est `pwd`"
~/Documents/go $ ./chemins.sh
Le script exécuté a comme basename chemins.sh, dirname .
Le répertoire courant est /Users/bruno/Documents/go
cd ..
~/Documentsr $ go/chemins.sh
Le script exécuté a comme basename chemins.sh, dirname go
Le répertoire courant est /Users/bruno/Documents
cd ~
~ $ /Users/bruno/Documents/go/chemins.sh
Le script exécuté a comme basename chemins.sh, dirname /Users/bruno/Documents/go
Le répertoire courant est /Users/bruno
Supprimer les lignes vides:¶
$ echo "$l"
1: Amazing Blues
2: France Inter 95.9 (Émissions-débats France)
3: K6 FM 101.6 (Musique Locale)
4: RTL 104.2 (Monde)
5: Radio Classique 105.8 (Classique)
6: Rire et Chansons 91.8 (Comédie)
$ echo "$l" | awk 'NF'
$ echo "$l" | sed '/^$/d'
$ echo "$l" | grep .
$ echo "$l" | grep -v '^$'
1: Amazing Blues
2: France Inter 95.9 (Émissions-débats France)
3: K6 FM 101.6 (Musique Locale)
4: RTL 104.2 (Monde)
5: Radio Classique 105.8 (Classique)
6: Rire et Chansons 91.8 (Comédie)
Tableaux:¶
Déclarer un tableau associatif:
declare -a do_not_update=('')
Commandes:¶
Test si une commande existe:¶
if [ -x "$(command -v jq)" ]; then
Tester l'argument d'une commande:
if [[ $1 == "--nodistract" ]]; then
Test du code de retour d'une commande:
brew missing
status=$?
if [ $status -ne 0 ]; then
Nombres de lignes:¶
# grep
nb=$(echo -n "$albums" | grep -c '^')
#awk
nb=$(awk 'END { print NR }' <<< "$albums")
Convertir un script bash en application macOS:¶
$ appify script.sh name.app
$ appify script.sh name.app Icon.png
Dernière mise à jour:
March 4, 2022