【发布时间】:2016-12-04 10:39:22
【问题描述】:
如果我的术语或语法不够出色(仍在学习),请多多包涵。我目前有一个简单的 bash 脚本,它检查命令的参数并输出具有匹配文本的文件名。我的脚本的这一部分通过 grep 命令正常工作,并通过管道传输到 xargs 以进行正确格式化。
在运行脚本时,我通过一个简单的循环来检查值是否为空,如果不是,则继续运行我的变量/搜索。
我的问题是:是否可以通过 stdout 输出此脚本,并在每次使用用户输入和日期/时间运行时保存一个新文件? (但不覆盖)EX:report-bob-0729161500.rpt
我看到了与命令一起使用 tee 的其他相同建议,但我试图让它在脚本中工作。同样,另一个建议使用 exec > >(tee -i logfile.txt),但我不确定如何正确格式化它以在每次执行脚本时将日期/时间和 $1 输入包含到新文件中。
有任何帮助或建议的资源吗?
谢谢。
SEARCH=`[search_variable]`
if [ -z "$SEARCH" ]
then
echo "$1 not found."
else
echo -e "REPORT LISTING\n\n"
echo "$SEARCH"
fi
编辑:我确实尝试将 echo 语句简单地传递给 tee 命令,这确实有效。但是,我仍然很好奇是否有人有其他建议来通过替代方法完成同样的任务。谢谢你。
通过管道传送到 tee 的 echo 语句:
SEARCH=`[search_variable]`
DATE=`date +"%m%d%y%k%M"`
if [ -z "$SEARCH" ]
then
echo "$1 not found."
else
echo -e "REPORT LISTING\n\n" | tee tps-list-$1-$DATE.rpt
echo "$SEARCH" | tee tps-list-$1-$DATE.rpt
fi
【问题讨论】:
标签: linux bash exec stdout tee