秘密圣诞老人乐趣bash

时间:2011-12-02 11:43:54

标签: linux bash shell

试图给办公室增添一点乐趣,让办公室里的每个人都做秘密圣诞老人。 编写一个小的bash脚本,随机混合两个文本文件,一个是名字,另一个是电子邮件。

该脚本会随机混合这些内容,然后通过电子邮件将用户与他们拥有秘密圣诞老人的人发送电子邮件

#!/bin/bash
NAMES='/home/user/Scripts/txt/names.txt'
EMAILS='/home/user/Scripts/txt/emailsanta.txt'
SECRET=$NAMES
SECRET=$EMAILS
while read SECRET; do
paste $NAMES $EMAILS | sort -R
done < $SECRET

没有收到电子邮件脚本,但我的结果没有正确显示

关于更好方法的任何想法: - )

3 个答案:

答案 0 :(得分:4)

这应该是您在当前脚本中尝试实现的目标:

paste /path/to/names.txt <(sort -R /path/to/emails.txt)

要发送电子邮件,请尝试:

# Note: untested
while read NAME EMAIL; do
    echo $NAME | mail -s "Secret Santa" $EMAIL 
done < <(paste /path/to/names.txt <(sort -R /path/to/emails.txt))

答案 1 :(得分:0)

尝试

names='/home/user/Scripts/txt/names.txt'
emails='/home/user/Scripts/txt/emailsanta.txt'

paste "$emails" <((while IFS= read -r line ; do printf '%d:%s\n' $(tr -c -d '0-9' < /dev/urandom | head -c 5) "$line" ; done < "$names") | sort -n | cut -d: -f2-)

答案 2 :(得分:0)

我会去

NAMES='/home/user/Scripts/txt/names.txt'
EMAILS='/home/user/Scripts/txt/emailsanta.txt'
sort -R "$EMAILS" | pr -m -t -s\  "$NAMES" -