Shell脚本:赋值或运算符(a = b || c)

vol*_*ron 3 bash csh sh assignment-operator logical-or

正如标题所描述的那样,a= b || c在shell脚本中执行or-assignment(例如)的正确方法是什么,特别是csh vs bash?我无法测试这个,所以也许上面的例子可行.

我认为这在脚本语言中很常见,但对于那些不太了解的人来说,变量a将保留bif truthy的值,否则保留值c.在该示例中bc是表达式.

用例通常设置为a某种值(如果提供),否则使用默认值(例如a= $1 || "Foo").


由于这个问题并非如此,我不确定接近投票的原因是什么:

  • 模糊
  • 残缺

如果您需要进一步解释并需要一些修改,请发表评论.

gle*_*man 5

对于你想要的bash

a=${b:-$c}
Run Code Online (Sandbox Code Playgroud)

http://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion

${parameter:-word}

如果参数未设置或为null,则替换单词的扩展.否则,参数的值将被替换.