DIR=${1-${HOME}} 用简单的英语来说是什么意思?

DIR=${1-${HOME}} 用简单的英语来说是什么意思?

我一直在尝试了解有关 bash 脚本的更多信息,并在我正在查看的安装脚本的开头遇到了此声明。

DIR=${1-${HOME}}

首先,由于这是脚本的开头,我不明白 $1 可能指向什么。我知道 $0 是脚本本身。 $1 指什么?

其次,$1减去主目录是什么意思?

如果有人能解释一下这里发生了什么,我将非常感激!

谢谢!

(顺便说一句,我指的实际脚本是阴阳黑暗主题管理器的安装脚本:https://github.com/oskarsh/Yin-Yang/blob/master/install.sh,如果有帮助的话。)

答案1

$1, $2, ... 技术上称为“位置参数”,它们保存脚本的命令行参数(或脚本内函数的参数)。

${var-value}是默认值扩展,如果设置了则使用 的值$var,否则使用 后给出的值-

因此${1-${HOME}}(或${1-$HOME}) 使用脚本的第一个命令行参数,或者如果没有参数,则无论 的值是什么$HOME。并且分配只是将该结果分配给DIR.

参见例如在脚本中使用“${a:-b}”进行变量赋值例如 和 的变体:-

相关内容