linux 命令行参数的说明

今天看了下公司里程序运行完之后自动发email的命令,在Linux下。

用的是Brandon Zehm写的sendEmail程序,参照 http://blogold.chinaunix.net/u2/65354/showart_1897020.html 有说明。

逻辑是先通过myemail.sh args 来调用sendEmail程序。

例如:./myemail.sh 'this is a test',

就会调用

./sendEmail -f [email protected] -t "[email protected]" -s 'smtp.xxx.com' -xu [email protected] -xp 12345 -u ${1:-'test'} -m ${2:-${1:-'test'}}

 

看到有两个参数:-u ${1:-'test'} 和 -m ${2:-${1:-'test'}}

看了下sendEmail程序知道-u是邮件的主题,-m是邮件的内容。

但对跟在后面的参数很不解。

测试了一下发给自己,如果调用命令myemail,若不输入参数,则发送的邮件的主题和内容都是test。

若输入两个参数,则第一个为主题,第二个为内容。

 

所以推测:

${1:-'test'}的作用是先取输入的第一个参数,若为空则默认取-'xxxx'里的内容。

${2:-{$1:-'test'}} 是同样的道理,先取第二个参数,为空则取-{$1:-'test'}的内容。

你可能感兴趣的:(html,linux,.net,XP,F#)