#!/bin/bash
VAR1="Hello"
VAR2="Bye"
{
echo $VAR1
some stuff here
echo $var2
}
mutt -s "this is a test" [email protected]
我需要复制(也许使用 tee 命令)包含在 { 和 } 内的代码的输出,不仅通过电子邮件,而且还复制到屏幕。
答案1
像这样:
#!/bin/bash
var1="Hello"
var2="Bye"
{
echo "$var1"
some stuff here
echo "$var2"
} | tee >(mutt -s "this is a test" [email protected])
- 避免使用大写变量,它们保留供系统使用
- 使用更多引号
进程替换:<(命令)或>(命令)被 FIFO 或 /dev/fd/* 条目替换。基本上是设置命名管道的简写。看http://mywiki.wooledge.org/ProcessSubstitution。示例:diff -u <(排序文件1) <(排序文件2)
“双引号”包含空格/元字符的每个文字以及每一个扩展:“$var”、“$(命令“$var”)”、“${array[@]}”、“a & b”。使用“单引号”表示代码或文字 $:“成本 5 美元”,ssh 主机“echo“$HOSTNAME””。看http://mywiki.wooledge.org/Quotes,http://mywiki.wooledge.org/Arguments和http://wiki.bash-hackers.org/syntax/words