【第22期】观点:IT 行业加班,到底有没有价值?

Shell每日闪记2

原创 2016年08月31日 09:17:35

需求:利用mail命令向朋友们批量发送聚会的邀请,称呼(或者还有其他内容)因人而异。


Preliminaries:本地系统已配置好email服务,具体配置可参考

http://blog.csdn.net/zhuying_linux/article/details/7091688

http://blog.csdn.net/hitabc141592/article/details/25986911


方案1:直接采用for循环


脚本文件email如下:

#!/bin/bash
for name in Peter Mike
do
echo "Dear $name,

Hi! I'm glad to inform you that there will be a party this Friday night at my place. I'd appreciate it if you could come.

Sincerely,
Kinosum" | mail -s "Invitation" $name@null.com
done

 评论:如果除了称呼,还要引入其他变量(比如说上面的邮箱地址的域名不都是null.com),则需要多个for循环嵌套,但这种嵌套意味着这些变量之间的组合的穷举,除非这正是我们所需求的,不然这种“吹尽狂沙始到金”的执拗便是小题大做。


方案2:利用事先编制好的列表

我们可以先建立一个文件'list',每一行为一个记录,根据需求分成多个字段,为了和字段中可能出现的空白符相区分,我们就用逗号‘,’作为分隔符。建立好的文本文件形如(每行依次为称呼,关系和邮箱地址):
Peter,brother,peter@null.com
Mike,colleague,mike@null.com

然后,脚本文件email如下:
#!/bin/bash
cat list | while read line
do
name=$(echo $line | cut -d "," -f 1)
identity=$(echo $line | cut -d "," -f 2)
email=$(echo $line | cut -d "," -f 3)
echo "Dear $name,

Hi! I'm glad to inform my beloved $identity you that there will be a party this Friday night at my place. I'd appreciate it if you could come.

Sincerely,
Kinosum" | mail -s "Invitation" $email
done

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Shell每日闪记1

问:批量地在当前目录(包含子目录)中的某些文件(例如*.gnu)的开头插入一些固定内容的行(例如"set term jpeg size 600,900 …")。 答:find . -name '*...

互联网行业岗位职责

互联网行业的薪资水准相对较高,刚入行一个月,半年,或者一年超过其他行业薪资很正常。  那么,互联网行业究竟有哪些职位呢,又分别适合哪些传统行业转型?  1.产品  2.UI  3.CSS ...

欢迎关注CSDN程序人生公众号

关注程序员生活,汇聚开发轶事。

shell脚本学习每日一句(1)

shell的学习入门极难,这我是知道了,想想自己学习shell也差不多半年了,其中总是学学停停,没有一点儿的转眼劲儿,看来是不能将这shell学好了。所以想到这样的一招来督促自己好好学习shell,积少成多: 5月15号下午2点半: 获取当前的ip地址: ifconfig eth0 |grep "inet addr"|awk '{print $2}' |cut -c 6 [root@fsailing1 ~]# ifconfig

shell脚本学习每日一句(2)

5月21号 晚上8点更新 employee文件中记录了工号和姓名 employee.txt:100 Jason Smith200 John Doe300 Sanjay Gupta<span style
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)