nutools/doc/ulib_base.core.md

4.5 KiB

ulib/base.core

echo_

afficher la valeur $* sans passer à la ligne

recho

afficher une valeur brute. contrairement à la commande echo, ne reconnaitre
aucune option (i.e. -e, -E, -n ne sont pas signifiants)

recho_

afficher une valeur brute, sans passer à la ligne. contrairement à la commande
echo, ne reconnaitre aucune option (i.e. -e, -E, -n ne sont pas signifiants)

should_quote

Tester si la chaine $* doit être mise entre quotes

qval

Afficher la chaine $* quotée avec "

qvalm

Afficher la chaine $* quotée si nécessaire avec "

qvalr

Afficher la chaine $* quotée si nécessaire avec ", sauf si elle est vide

qvals

Afficher chaque argument de cette fonction quotée le cas échéant avec "
Chaque valeur est séparée par un espace.

qwc

Dans la chaine $*, remplacer \ par \\, " par \", $ par \$, ` par \`, puis
quoter la chaine avec ", sauf les wildcards * et ?
Cela permet de quoter une chaine permettant de glober des fichiers, e.g
eval "ls $(qwc "$value")"
Note: la protection de ! n'est pas effectuée, parce que le comportement du
shell est incohérent entre le shell interactif et les scripts. Pour une
version plus robuste, il est nécessaire d'utiliser un programme externe tel
que sed ou awk

qlines

Traiter chaque ligne de l'entrée standard pour en faire des chaines quotées
avec '

setv

initialiser la variable $1 avec la valeur $2*
note: en principe, la syntaxe est 'setv var values...'. cependant, la
syntaxe 'setv var=values...' est supportée aussi

echo_setv

Afficher la commande qui serait lancée par setv "$@"

setx

syntaxe 1: setx var cmd
initialiser la variable $1 avec le résultat de la commande "$2..@"
note: en principe, la syntaxe est 'setx var cmd args...'. cependant, la
syntaxe 'setx var=cmd args...' est supportée aussi
syntaxe 2: setx -a array cmd
initialiser le tableau $1 avec le résultat de la commande "$2..@", chaque
ligne du résultat étant un élément du tableau
note: en principe, la syntaxe est 'setx -a array cmd args...'. cependant, la
syntaxe 'setx -a array=cmd args...' est supportée aussi

evalx

Implémenter une syntaxe lisible et naturelle permettant d'enchainer des
traitements sur une valeur. Par exemple, la commande
evalx cmd1... // cmd2... // cmd3...
affiche le résultat de la commande "$(cmd3 $(cmd2 $(cmd1)))"
Retourner le dernier code d'erreur non nul, ou 0 si toutes les commandes se
sont exécutées sans erreur.

setxx

équivalent à setx $1 evalx $2..@

evalp

Implémenter une syntaxe alternative permettant d'enchainer des traitements sur
un flux de données. Par exemple, la commande
evalp cmd1... // cmd2... // cmd3...
affiche le résultat de la commande "$(cmd1 | cmd2 | cmd3)"
Typiquement, cette fonction permet de faciliter la construction d'un
enchainement de commandes par programme, ou de faciliter l'utilisation de la
fonction setx() pour récupérer le résultat d'un enchainement. Dans les autres
cas, il est plus simple et naturel d'écrire les enchainements avec la syntaxe
de bash.

setxp

équivalent à setx $1 evalp $2..@

testx

Faire un test unaire avec la commande [ sur une valeur calculée avec evalx.
Utiliser la syntaxe 'testx op cmds...' e.g.
testx -z cmd1 // cmd2

test2x

Faire une test binaire avec la commande [ entre une valeur spécifiée et une
valeur calculée avec evalx. Utiliser la syntaxe 'test2x value op cmds...' e.g.
test2x value == cmd1 // cmd2

testrx

Faire une test binaire avec la commande [[ entre une valeur spécifiée et une
valeur calculée avec evalx. Utiliser la syntaxe 'testrx value op cmds...' e.g.
testrx value == cmd1 // cmd2

testp

Faire un test unaire avec la commande [ sur une valeur calculée avec evalp.
Utiliser la syntaxe 'testp op cmds...' e.g.
testp -z cmd1 // cmd2

test2p

Faire une test binaire avec la commande [ entre une valeur spécifiée et une
valeur calculée avec evalp. Utiliser la syntaxe 'test2p value op cmds...' e.g.
test2p value == cmd1 // cmd2

testrp

Faire une test binaire avec la commande [[ entre une valeur spécifiée et une
valeur calculée avec evalp. Utiliser la syntaxe 'testrp value op cmds...' e.g.
testrp value == cmd1 // cmd2

err2out

lancer la commande $@ en redirigeant la sortie d'erreur sur la sortie standard

-- coding: utf-8 mode: markdown -- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary