我不明白变量 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
。所以 DAYS
是 foo
.
${1-10}
使 10
成为 默认值:
$ myscript.sh
将 DAYS
设置为 10
。
我使用一个 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
。所以 DAYS
是 foo
.
${1-10}
使 10
成为 默认值:
$ myscript.sh
将 DAYS
设置为 10
。