将多个文件压缩到单个BASH脚本

时间:2013-09-10 08:29:49

标签: bash

我有一个.body,.script和.sql,我想将它压缩到一个脚本中,但我不知道如何去做。

.body包含电子邮件。

.sql将数据假脱机到.csv:

.script运行.sql,并发送附带Report.zip的电子邮件:

sqlplus $user/$pass@$db @script.sql

(cat script.body; uuencode Report.zip Report.zip) | mail -s "Report" user@domain.com -- -f no-reply@domain.com

这个(包括SQL)是否可以在一个BASH脚本中完成?

1 个答案:

答案 0 :(得分:1)

如果你可以将脚本传递给sqlplus的stdin,你可以这样做:

sqlplus $user/$pass@$db << END
<contents of sql script here>
END

(cat script.body; uuencode Report.zip Report.zip) | mail -s "Report" user@domain.com -- -f no-reply@domain.com

如果你仍然想要stdin(如果它可能要求输入密码或其他东西很有用)并且假设sqlplus不会尝试使用脚本文件做任何事情:

sqlplus $user/$pass@$db START <(cat << END
<contents of sql script here>
END)

(cat script.body; uuencode Report.zip Report.zip) | mail -s "Report" user@domain.com -- -f no-reply@domain.com