如果新定义为非空,则重新定义变量

亚历山大·米尔斯

我有这个:

master="master";
integration="integration";

if [ -f '.vcs.json' ]; then
    master=`read_json -f .vcs.json -k git.master`
    integration=`read_json -f .vcs.json -k git.integration`
fi

但是,如果read_json的结果非空,我只想重新定义主/集成变量。

我在想这样的事情:

master="master";
integration="integration";

if [ -f '.vcs.json' ]; then
    master="${`read_json -f .vcs.json -k git.master`:-master}"
    integration="${`read_json -f .vcs.json -k git.integration`:-integration}"
fi

但我不确定该语法是否正确。

兴奋剂

如果只想在字符串非空时执行操作,请在引用变量时使用参数default:

master="$(read_json -f .vcs.json -k git.master)"

如果subshel​​l命令不返回任何输出,则变量将为null。然后,您可以利用默认替换来利用它:

do-a-thing "${master-master}" # if 'master' is null, use the default value 'master'
                              # otherwise, use the contents of the variable

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章