【发布时间】:2012-08-23 03:05:05
【问题描述】:
情况是这样的
我有一个 shell 脚本,它运行一些具有不同参数和选项的复杂命令。
这些参数和选项是由第三方应用程序传递的,所以我可能不知道每次向 shell 脚本传递的参数和选项是什么
所以为了知道这一点,我在 shell 脚本的开头使用 set -x 来查看该命令到底在运行什么。我想使用记录器将那些调试器消息从 set -x 移动到 syslog。
我用trap来做
trap "logger $(BASH_COMMAND)" DEBUG
但是 syslog 的输出并没有它正在运行的确切命令,而是那样......
apple=1
orange=2
command $apple $orange
..................
但我希望日志的输出应该是
command 1 2
我该如何实现?
【问题讨论】:
-
DEBUG 显示命令 before 执行和解析。顺便说一句,
$apple=1是无效的(除非您使用 Perl 进行编码)。