##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 ## Fonctions dépréciées ##@cooked nocomments uprovide base.deprecated # base.array function set_array_cmd() { # Afficher la commande permettant d'initialiser le tableau $1 avec les valeurs: # soit du tableau $2, soit de $3..$n si $2=="@" # S'il n'y a que l'argument $1, alors afficher la commande permettant de # recréer le tableau $1 if [ $# -eq 1 ]; then echo_seta2 "$1" elif [ "$2" == @ ]; then echo_seta "$1" "${@:3}" else eval "echo_seta \"\$1\" \"\${$2[@]}\"" fi } function set_array() { # Soit $1 un tableau à créer. Si $2=="@", créer le tableau $1 avec les valeurs # $3..$n. Sinon, créer le tableau $1 avec les valeurs du tableau $2. # Cette fonction n'existe que comme un pendant de set_var(), mais le véritable # intérêt est la fonction set_array_cmd(). cf array_copy() pour une version plus # efficace de la copie de tableaux eval "$(set_array_cmd "$@")" } # base.misc function quote_in() { # Comme quote_arg pour une chaine lue sur stdin sed 's/\\/\\\\/g s/"/\\"/g s/\$/\\$/g s/`/\\`/g' } function quote_sin() { # Pour la chaine lue sur stdin, remplacer ' par '\''. Cela permet de protéger une # chaine à mettre entre quotes sed "s/'/'\\\\''/g" } function quote_sarg() { # Dans la chaine $1, remplacer ' par '\''. Cette fonction utilise quote_sin, # puisque le shell a des difficultés à faire le rechercher/remplacer approprié quote_sin <<<"$1" } function quoted_sarg() { # Dans la chaine $1, remplacer ' par '\'', et afficher la chaine entourée de # quotes echo "'$(quote_sarg "$1")'" } function quoted_sargs() { # Comme quoted_sarg, mais tous les arguments sont quotés et affichés entourés de # quotes, ce qui permet de construire des arguments d'une ligne de commande local a s for a in "$@"; do s="${s:+$s }$(quoted_sarg "$a")" done recho "$s" }