![DIR=${1-${HOME}} 用简单的英语来说是什么意思?](https://linux22.com/image/199914/DIR%3D%24%7B1-%24%7BHOME%7D%7D%20%E7%94%A8%E7%AE%80%E5%8D%95%E7%9A%84%E8%8B%B1%E8%AF%AD%E6%9D%A5%E8%AF%B4%E6%98%AF%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D%EF%BC%9F.png)
我一直在尝试了解有关 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}”进行变量赋值例如 和 的变体:-
。