bosshida 发表于 2013-2-4 15:47:10

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 xxx@xxx.com -t "xxx@xxx.com" -s 'smtp.xxx.com' -xu xxx@xxx.com -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'}的内容。
页: [1]
查看完整版本: linux 命令行参数的说明