Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用此语法分配bash变量值时有什么区别?_Linux_Bash_Shell_Variables_Syntax - Fatal编程技术网

Linux 使用此语法分配bash变量值时有什么区别?

Linux 使用此语法分配bash变量值时有什么区别?,linux,bash,shell,variables,syntax,Linux,Bash,Shell,Variables,Syntax,很抱歉,如果这是一个非常简单的问题或者已经被问过了,但是由于这个问题的性质,我想不出任何可以放在搜索引擎上的搜索词 最近我看到一些bash脚本,它们分配变量值如下: $ MY_BASH_VAR=${MY_BASH_VAR:-myvalue} $ echo "$MY_BASH_VAR" myvalue MY_BASH_VAR=myvalue $ echo "$MY_BASH_VAR" myvalue 与最常见的赋值方式有什么区别: $ MY_BASH_VAR=${MY_BASH_VAR:-my

很抱歉,如果这是一个非常简单的问题或者已经被问过了,但是由于这个问题的性质,我想不出任何可以放在搜索引擎上的搜索词

最近我看到一些bash脚本,它们分配变量值如下:

$ MY_BASH_VAR=${MY_BASH_VAR:-myvalue}
$ echo "$MY_BASH_VAR"
myvalue
MY_BASH_VAR=myvalue
$ echo "$MY_BASH_VAR"
myvalue
与最常见的赋值方式有什么区别:

$ MY_BASH_VAR=${MY_BASH_VAR:-myvalue}
$ echo "$MY_BASH_VAR"
myvalue
MY_BASH_VAR=myvalue
$ echo "$MY_BASH_VAR"
myvalue
你可以看看

这提供了一个默认值:MY_BASH_VAR保留其值,如果定义为其他值,则采用默认的“myvalue”

你可以看看

这提供了一个默认值:MY_BASH_VAR保留其值,如果定义为其他值,则采用默认的“myvalue”


假设已经设置了
$MY\u BASH\u VAR
。在这种情况下,它将保持相同的值。如果没有,它将获得
myvalue

案例1)
$MY\u BASH\u VAR
已设置

$ MY_BASH_VAR="hello"
$ MY_BASH_VAR=${MY_BASH_VAR:-myvalue}
$ echo "$MY_BASH_VAR"
hello
案例2)
$MY\u BASH\u VAR
之前未设置

$ MY_BASH_VAR=${MY_BASH_VAR:-myvalue}
$ echo "$MY_BASH_VAR"
myvalue
案例3)
$MY\u BASH\u VAR
设置为空字符串

$ MY_BASH_VAR=""
$ MY_BASH_VAR=${MY_BASH_VAR:-myvalue}
$ echo "$MY_BASH_VAR"
myvalue

假设已经设置了
$MY\u BASH\u VAR
。在这种情况下,它将保持相同的值。如果没有,它将获得
myvalue

案例1)
$MY\u BASH\u VAR
已设置

$ MY_BASH_VAR="hello"
$ MY_BASH_VAR=${MY_BASH_VAR:-myvalue}
$ echo "$MY_BASH_VAR"
hello
案例2)
$MY\u BASH\u VAR
之前未设置

$ MY_BASH_VAR=${MY_BASH_VAR:-myvalue}
$ echo "$MY_BASH_VAR"
myvalue
案例3)
$MY\u BASH\u VAR
设置为空字符串

$ MY_BASH_VAR=""
$ MY_BASH_VAR=${MY_BASH_VAR:-myvalue}
$ echo "$MY_BASH_VAR"
myvalue

请注意,使用
:-
MY_BASH_VAR
也会收到默认值,如果它当前设置为空字符串。哦,这是真的,我不记得在回答中提到它。刚刚更新过。谢谢请注意,使用
:-
MY_BASH_VAR
也会收到默认值,如果它当前设置为空字符串。哦,这是真的,我不记得在回答中提到它。刚刚更新过。谢谢请注意,对于
:-
A
如果当前设置为空字符串,也将接收默认值。请注意,对于
:-
A
如果当前设置为空字符串,也将接收默认值。