为命令参数创建昵称

为命令参数创建昵称

我想为我的电子邮件地址使用昵称 (foo) ([电子邮件受保护])。目标是能够做到

echo "This is a test email" | mail -s "Email Title" foo

代替

echo "This is a test email" | mail -s "Email Title" [email protected]

谢谢。

作为旁注,当运行前一行时,我能够按预期发送邮件,它只是发送到 foo@something。也就是说,它无法识别放入的别名/etc/aliases。我还编辑了 msmtp 配置文件以允许来自/etc/aliases.

更新

通过将行附加aliases /etc/aliases/etc/msmtprc并附加到,我能够成功运行以下命令: foo: [email protected]/etc/aliasesecho "Hello" | msmtp tutmail

但是,这不适用于mail我喜欢的命令。

答案1

使用 shell 变量?

foo='[email protected]'

echo "This is a test email" | mail -s "Email Title" "$foo"

变量foo的值是通过在变量名称前加上前缀 来获取的$

通常需要引用"$foo"以避免在空格上分割变量的值(例如像 之类的值),并且还将避免使用变量的值作为文件名通配模式。"My Name" <[email protected]>

答案2

如果这个问题只是关于邮件,请参阅“个人和系统范围的通讯组列表

还可以创建个人分发列表,例如,用户可以将邮件发送到“群组”并将其发送给一群人。这样的列表可以通过放置一行来定义,例如

   alias cohorts bill ozalp jkf mark kridle@ucbcory

在用户主目录中的 .mailrc 文件中。可以使用 mailx 中的 alias 命令显示此类别名的当前列表。可以通过编辑 /etc/aliases 创建系统范围的分发列表,请参阅 aliases(5) 和 sendmail(8);它们以不同的语法保存。在用户发送的邮件中,个人别名将在发送给其他人的邮件中扩展,以便他们能够回复收件人。发送邮件时,系统范围别名不会扩展,但返回到计算机的任何回复都会扩展系统范围别名,因为所有邮件都通过 sendmail。

相关内容