3.0 KiB
3.0 KiB
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
Concaténer une chaine:
upd+="$name "
Trim une chaine:
1. sed
$ var=" Une chaine entourée d'espaces "
$ echo "Fluctuat nec $var mergitur"
Fluctuat nec Une chaine entourée d'espaces mergitur
# supprimer les espaces en fin de chaine: sed 's/ *$//g'`
$ var=`echo $var | sed 's/ *$//g'`
$ echo "Fluctuat nec $var mergitur"
Fluctuat nec Une chaine entourée d'espaces mergitur
# supprimer les espaces en début de chaine: sed 's/^ *//g'`
$ var=`echo $var | sed 's/^ *//g'`
$ echo "Fluctuat nec $var mergitur"
Fluctuat nec Une chaine entourée d'espaces mergitur
# supprimer les espaces en début et fin de chaine:
$ var=" Une chaine entourée d'espaces "
$ echo "$var" | sed 's/^[[:blank:]]*//;s/[[:blank:]]*$//'
Une chaine entourée d'espaces
2. awk
$ echo "${var}"
Une chaine entourée d'espaces
$ echo "${var}" | awk '{gsub(/^[ \t]+/,""); print $0, " fin" }'
Une chaine entourée d'espaces fin
$ echo "${var}" | awk '{gsub(/[ \t]+$/,""); print $0, " fin" }'
Une chaine entourée d'espaces fin
$ echo "${var}" | awk '{gsub(/^[ \t]+| [ \t]+$/,""); print $0, " fin" }'
Une chaine entourée d'espaces fin
3. xargs
$ var=" Une chaine entourée d espaces "
$ echo "$var" | xargs
Une chaine entourée d espaces
$ echo " Une chaine entourée d espaces " | xargs
Une chaine entourée d espaces
# erreur si la chaine contient un apostrophe
$ echo " Une chaine entourée d'espaces " | xargs
xargs: unterminated quote
# dans ce cas, on utilise xargs -0
$ echo " Une chaine entourée d'espaces " | xargs -0
Une chaine entourée d'espaces
Longueur d'une chaine:
$ echo -n "Longueur de la chaine:" | wc -c
22
$ echo "Longueur de la chaine:" | awk '{print length}'
22
$ var="Longueur de la chaine:"
$ echo ${#var}
22
Déclarer un tableau associatif:
declare -a do_not_update=('')
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