相关疑难解决方法(0)

"var = $ {var:-word}"和"var = $ {var:= word}"之间有什么区别?

我在这上面阅读了bash手册页,但我不明白其中的区别.我测试了它们两个,它们似乎产生完全相同的结果.

如果未通过命令行参数设置值,我想设置变量的默认值.

#!/bin/bash

var="$1"
var=${var:-word}
echo "$var"
Run Code Online (Sandbox Code Playgroud)

上面的代码回显,word如果$1为null,$1则回显if not null的值.这样做:

#!/bin/bash

var="$1"
var=${var:=word}
echo "$var"
Run Code Online (Sandbox Code Playgroud)

根据Bash手册页,

${parameter:-word}使用默认值.如果参数未设置或为null,则替换单词的扩展.否则,参数的值将被替换.

${parameter:=word}分配默认值.如果参数未设置或为null,则将字的扩展分配给参数.然后替换参数的值.不能以这种方式分配位置参数和特殊参数.

他们是一样的,${parameter:=word}只是做得更多吗?

linux bash

14
推荐指数
4
解决办法
1323
查看次数

标签 统计

bash ×1

linux ×1