1

Я наткнулся на файл Bash, который имеет что-то вроде этого

MYVAR := SomeVal

Я знаю, что после прочтения некоторых руководств вы устанавливаете значения как таковые

MYVAR = SomeVal

В чем разница между двумя выше?

1 ответ1

3

Вы, вероятно, видели расширение параметра, чтобы установить значение по умолчанию.

Разница в том, является ли переменная неустановленной или она имеет нулевое значение:

  1. когда переменная не установлена, нет никакой разницы

    $ unset MYVAR; : ${MYVAR:=SomeVal}; echo "$MYVAR"
    SomeVal
    $ unset MYVAR; : ${MYVAR=SomeVal}; echo "$MYVAR"
    SomeVal
    
  2. когда переменная имеет значение, нет никакой разницы

    $ MYVAR="foo"; : ${MYVAR:=SomeVal}; echo "$MYVAR"
    foo
    $ MYVAR="foo"; : ${MYVAR=SomeVal}; echo "$MYVAR"
    foo
    
  3. когда переменная имеет нулевое значение:

    $ MYVAR=""; : ${MYVAR:=SomeVal}; echo "$MYVAR"
    SomeVal
    $ MYVAR=""; : ${MYVAR=SomeVal}; echo "$MYVAR"
    # empty line
    

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .