我不明白变量 shell 脚本定义

I don't understand variable shell script definition

我使用一个 shell 脚本清理一些目录。

DAYS=${1-10}

echo `date` "INFO Cleaning tmp, log, backup, xml data files older than $DAYS days"

变量 DAYS 上的 ${1-10} 是什么意思?

这会将</code>的值赋给<code>DAYS除非 </code>没有设置。在这种情况下,将使用默认值 10。</p> <pre><code>$ echo ${1-10} 10 $ set 5 $ echo ${1-10} 5

顺便说一句,它可能应该是 DAYS=${1:-10},这样空值也被 10 替换。"" 可能不是 DAYS 的有用值。

</code> 是脚本的第一个命令行参数:</p> <pre><code>$ myscript.sh foo

</code> 设置为 <code>foo。所以 DAYSfoo.

${1-10} 使 10 成为 默认值:

$ myscript.sh

DAYS 设置为 10