问题描述
是否有与 bash 中的 parameter expansion 等效(或 [更好|替代] 选项)?
具体来说,我正在寻找 ${parameter:-word}
“if parameter is unset or null”情况。
我在各种 bash init 脚本或 shell 脚本中有很多这样的行,我试图找到合理的替代方案。
var1="${XDG_CONfig_HOME:-$HOME/.config}"/foo
var2="${XDG_DATA_HOME:-$HOME/.local/share}"/foo
some-command "$var1" "$var2"
我还没有找到比编写大量这样的内联块更好的选择,这似乎过于冗长。
begin
test -z "$XDG_CONfig_HOME" && set -l XDG_CONfig_HOME "$HOME"/.config
test -z "$XDG_DATA_HOME" && set -l XDG_DATA_HOME "$HOME"/.local/share
set var1 "$XDG_CONfig_HOME"/foo
set var2 "$XDG_DATA_HOME"/bar
some-command "$var1" "$var2"
end
我不想被要求在环境中设置 XDG_* 变量——如果它们未设置,我希望能够使用默认值。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)