Aller au contenu

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:

mac-appify

$ appify script.sh name.app
$ appify script.sh name.app Icon.png

Dernière mise à jour: March 4, 2022