support de la syntaxe ?=

This commit is contained in:
Jephté Clain 2014-04-23 19:30:36 +04:00
parent f4278a7950
commit 42db2bf177
2 changed files with 9 additions and 2 deletions

View File

@ -151,9 +151,9 @@ BEGIN {
match_indented = 0
}
/^(export[ \t]+)?[a-zA-Z_][a-zA-Z0-9_]*[-+%#]=/ {
/^(export[ \t]+)?[a-zA-Z_][a-zA-Z0-9_]*[-+%#?]=/ {
# manipulation de variables de type PATH
match($0, /^(export[ \t]+)?([a-zA-Z_][a-zA-Z0-9_]*)([-+%#])=(.*)$/, parts)
match($0, /^(export[ \t]+)?([a-zA-Z_][a-zA-Z0-9_]*)([-+%#?])=(.*)$/, parts)
name = parts[2]
type = parts[3]
value = parts[4]
@ -163,6 +163,8 @@ BEGIN {
print "uinspath " value " " name
} else if (type == "-") {
print "udelpath " value " " name
} else if (type == "?") {
print "[ -n \"$" name "\" ] || " name "=" value
}
print "export " name
next

View File

@ -63,6 +63,11 @@ Les lignes commençant par # sont des commentaires et sont ignorées
PATH+=\"/path/to/dir with spaces\"
La syntaxe ?= permet de définir la valeur d'une variable si elle n'est pas
déjà définie:
var?=default
Les lignes de la forme suivante permettent d'exécuter une commande
quelconque: