gpt4 book ai didi

linux - 防止记录清除命令

转载 作者:太空宇宙 更新时间:2023-11-04 10:27:47 24 4
gpt4 key购买 nike

假设以下简单脚本:

#!/bin/bash
log="${HOME}/bin/test.log"
if [ -r "${log}" ]; then
rm -f "${log}"
fi
{
echo "Start of test"
clear
echo "End of test"
} 2>&1 | tee -a "${log}"

生成的日志文件的内容如下所示:

Start of test
<unprintable>[H<unprintable>[2JEnd of test

有什么方法可以避免使用这种日志记录方式发出明确命令所产生的额外字符吗?

最佳答案

一种可能性是将它们从进入日志文件的流中过滤掉。

{
echo "Start of test"
clear
echo "End of test"
} 2>&1 | tee -a >(sed 's/.\[H.\[2J//' > "${log}")

(我不确定如何单独使用可移植的 sed 来匹配文字转义字符。在这里,我只使用 . 来匹配任何字符并假设这个正则表达式将只匹配预期的序列。可以“作弊”并使用 bashsed 命令中生成文字转义字符:

sed $'s/\e\\[H\e\\[2J//'

虽然它并没有太多欺骗,因为我们已经在使用 bash-特定的进程替换。)

关于linux - 防止记录清除命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41004550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com