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 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 # 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] name = parts[2]
type = parts[3] type = parts[3]
value = parts[4] value = parts[4]
@ -163,6 +163,8 @@ BEGIN {
print "uinspath " value " " name print "uinspath " value " " name
} else if (type == "-") { } else if (type == "-") {
print "udelpath " value " " name print "udelpath " value " " name
} else if (type == "?") {
print "[ -n \"$" name "\" ] || " name "=" value
} }
print "export " name print "export " name
next 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\" 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 Les lignes de la forme suivante permettent d'exécuter une commande
quelconque: quelconque: