Я наткнулся на файл Bash, который имеет что-то вроде этого
MYVAR := SomeVal
Я знаю, что после прочтения некоторых руководств вы устанавливаете значения как таковые
MYVAR = SomeVal
В чем разница между двумя выше?
Я наткнулся на файл Bash, который имеет что-то вроде этого
MYVAR := SomeVal
Я знаю, что после прочтения некоторых руководств вы устанавливаете значения как таковые
MYVAR = SomeVal
В чем разница между двумя выше?
Вы, вероятно, видели расширение параметра, чтобы установить значение по умолчанию.
Разница в том, является ли переменная неустановленной или она имеет нулевое значение:
когда переменная не установлена, нет никакой разницы
$ unset MYVAR; : ${MYVAR:=SomeVal}; echo "$MYVAR"
SomeVal
$ unset MYVAR; : ${MYVAR=SomeVal}; echo "$MYVAR"
SomeVal
когда переменная имеет значение, нет никакой разницы
$ MYVAR="foo"; : ${MYVAR:=SomeVal}; echo "$MYVAR"
foo
$ MYVAR="foo"; : ${MYVAR=SomeVal}; echo "$MYVAR"
foo
когда переменная имеет нулевое значение:
$ MYVAR=""; : ${MYVAR:=SomeVal}; echo "$MYVAR"
SomeVal
$ MYVAR=""; : ${MYVAR=SomeVal}; echo "$MYVAR"
# empty line