我不明白变量shell脚本定义

时间:2016-02-18 15:18:53

标签: sh

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

DAYS=${1-10}

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

变量${1-10}DAYS的含义是什么?

2 个答案:

答案 0 :(得分:1)

除非未设置 $1,否则会将DAYS的值分配给$1。在这种情况下,使用默认值10。

$ echo ${1-10}
10
$ set 5
$ echo ${1-10}
5

顺便说一下,它应该是DAYS=${1:-10},因此空值也会替换为10. ""可能不是DAYS的有用值。

答案 1 :(得分:1)

$1是脚本的第一个命令行参数:

$ myscript.sh foo

$1设置为foo。因此DAYSfoo

${1-10}使10 默认值

$ myscript.sh

DAYS设置为10