:D expanded when var set true TRUE :U expanded when var undef true TRUE :D skipped if var undef :U skipped when var set is set :? only lhs when value true true TRUE :? only rhs when value false false FALSE do not evaluate or expand :? if discarding is set year=2016 month=04 day=01 date=20160401 Version=123.456.789 == 123456789 Literal=3.4.5 == 3004005 We have target specific vars exit status 0