diff --git a/ulib/crontab b/ulib/crontab index ceff806..f7c5fd3 100644 --- a/ulib/crontab +++ b/ulib/crontab @@ -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 diff --git a/uscrontab b/uscrontab index d316943..639c536 100755 --- a/uscrontab +++ b/uscrontab @@ -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: