дублировать вывод дополнительных команд

#!/bin/bash
VAR1="Hello"
VAR2="Bye"

{
echo $VAR1
some stuff here
echo $var2
}
mutt -s "this is a test" destination@gmail.com

Мне нужно продублировать (возможно, с помощью команды tee) вывод кода, включенного в { и }, не только по электронной почте, но и также на экран.

1
24.06.2020, 20:15
1 ответ

Вот так:

#!/bin/bash

var1="Hello"
var2="Bye"

{
    echo "$var1"
    some stuff here
    echo "$var2"
} | tee >(mutt -s "this is a test" destination@mail.com)
  • избегайте использования переменных ВЕРХНЕГО РЕГИСТРА, они зарезервированы для использования системой
  • используйте больше кавычек

Замена процесса :< (команда )или > (команда )заменяется записью FIFO или /dev/fd/ *. В основном сокращение для настройки именованного канала. См. http://mywiki.wooledge.org/ProcessSubstitution. Пример :diff -u < (sort file1 )< (sort file2)

"Двойная кавычка" каждый литерал, который содержит пробелы/метасимволы и каждое расширение :"$var", "$ (команда "$var" )", "${массив [@]}", "а и б". Используйте «одинарные кавычки» для кода или литерала $ :«Стоит 5 долларов США», ssh host «echo «$ HOSTNAME»». См. http://mywiki.wooledge.org/Quotes,http://mywiki.wooledge.org/Argumentsи http://wiki.bash-hackers.org/syntax/words

.
2
18.03.2021, 23:24

Теги

Похожие вопросы