更多命令的重复输出

更多命令的重复输出
#!/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/Argumentshttp://wiki.bash-hackers.org/syntax/words

相关内容