-1

linux:如何通过脚本工具(文件)记录所有操作以保存在日志文件中

嗨,大家好,

1)我希望记录我写的脚本文件,其中包括所有内容(例如,某些功能可能包括删除文件,(rm -rf $file)应该包含要删除的文件和日志文件中的文件名)这意味着脚本文件执行的所有内容。

2)如果1)问题得到解决,我可以输出可读的格式吗?

谢谢各位,希望能得到大家的建议!

4

1 回答 1

1

我可以想到两种选择:

  • 用于echo记录您认为对stdout或重要的特定命令stderr

    echo "rm -rf $f"
    rm -rf "$f"
    

    对于输出到stderr

    echo "rm -rf $f" >&2
    rm -rf "$f"
    

    不幸的是,这种方法应用起来会变得非常乏味,因为它必须手动完成。当命令参数包含空格时也会出现问题;为了能够可靠地区分和区分,引用输出需要做很多工作。"a" "b""a b"

  • -x在启用/xtrace选项的情况下运行 bash 。从手册:

    -X

    打印简单命令的踪迹,用于命令、case 命令、选择命令以及命令及其参数或相关单词列表的算术运算(在它们展开之后和执行之前)。PS4 变量的值被扩展,结果值在命令及其扩展参数之前打印。

    要使用,您可以使用set -xset +x启用/禁用脚本特定部分的选项,或者只需在bash命令行中输入:

    bash -o xtrace script.sh
    

    xtrace在子shell 中递归使用,请查看这个问题

    这种替代方法的一个缺点是输出非常冗长,并且不如来自显式消息的可读性echo- 它主要适用于调试脚本,而不是在正常操作下进行日志记录。

于 2012-08-19T06:45:38.267 回答