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

时间:2012-08-19 05:35:01

标签: linux bash shell unix

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

大家好,

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

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

谢谢你们,希望能得到你们的建议!

1 个答案:

答案 0 :(得分:1)

我可以想到两种选择:

  • 使用echo记录您认为对stdoutstderr重要的特定命令:

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

    输出到stderr

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

    不幸的是,这种方法应用起来非常繁琐,因为它必须手动完成。当命令参数包含空格时,它也有问题;它需要 lot 的工作来引用输出,以便能够可靠地告诉"a" "b""a b"

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

      

    -x

         

    打印一系列简单命令,用于命令,案例命令,选择命令,   和算术的命令及其参数或   关联的单词列表在扩展之后和它们之前   执行。 PS4变量的值被扩展并得到结果   在命令及其扩展参数之前打印值。

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

    bash -o xtrace script.sh
    

    要在子集中递归使用xtrace,请查看this question

    这种替代方案的一个缺点是输出非常详细且不像来自echo的显式消息那样可读 - 它主要适用于调试脚本,而不是在正常操作下记录