已执行的Bashscript更改命令

时间:2017-11-19 13:43:17

标签: linux bash

我使用Bashscript从我的系统和最重要的配置文件进行自动备份。

奇怪的是,在运行脚本后,它应该向我发送一封包含日志文件内容的电子邮件。但调试脚本显示,它运行的命令改变了,而不是在我的脚本中编写

脚本:

#!/bin/bash
###########################
###                     ###
###     BACKUP SCRIPT   ###
###                     ###
###########################
......
LOG="backup.log"
exec > >(tee -i >( sed 's/\x1B\[[0-9;]*[JKmsu]//g' > ${LOG}))
exec 2>&1

# commands etc

mailx -s "Backup | subject" mail@mail.tld < $LOG

所以我的日志包含所有必要的输出而且不是空的。

调试脚本会显示此

echo -e '\033[1;32mExiting prune script\033[0m'
Exiting prune script
+ mailx -s 'Backup | subject' mail@mail.tld #Missing < $LOG!!!

真的不知道为什么它错过了我的日志文件。我收到的邮件只是一封空邮件,邮件正确。

一些想法为什么?

PS:使用Ubuntu 16.04 LTS,但这不重要

Backup.log:https://pastebin.com/cCVSLV0h没什么特别的。

如果我直接从我的shell运行mail命令,它会按照我的预期发送这个日志。

0 个答案:

没有答案