bash mail:主题中的命令输出

Jua*_*blo 2 email bash

我尝试使用mail命令发送邮件,并在主题中输出其他命令

subj="hello from $(hostname -s) $(date)" 
echo "data" | mail -s $subj mail@mail
Run Code Online (Sandbox Code Playgroud)

但我只得到subject(hello from)的第一部分.

为什么?

dog*_*ane 7

你需要引用你的主题,如下所示:

echo "data" | mail -s "$subj" mail@mail
Run Code Online (Sandbox Code Playgroud)

如果你不引用它,mail程序将不知道你的主题在哪里结束,并将第一个"单词"(hello)作为主题,其他一切作为地址.

通常,总是引用变量是一种好习惯.