trap来将脚本内执行的命令写入日志

如果您想将刚执行的命令行输出到日志文件中,可以使用 trap 命令来实现。

下面是一个示例脚本:

#!/bin/bash

source  /etc/profile

day=`date '+%F %X'`
log_file="/tmp/rsync.kinggoo.log"

# 日志文件路径
log_file="/path/to/log.txt"

# 设置 DEBUG 选项以显示命令
set -o functrace

# 定义一个函数来处理 DEBUG 选项
function log_command() {
  local current_command="$BASH_COMMAND"

  # 排除自身和空命令
  if [[ "$current_command" != "log_command" && -n "$current_command" ]]; then
    echo "$day - Command:  $current_command" >> "$log_file"
  fi
}

# 在每个命令执行之前调用 log_command 函数
trap 'log_command' DEBUG

# 以下是测试内容

echo "Hello, world!"
echo "I'm kinggoo.com!"
ls -l

运行以上脚本后既可以看到效果

- THE END -
版权声明:
转载原创文章请注明,文章出处://kinggoo.com
原文地址:https://kinggoo.com/shell-trap.htm
发表评论?

1 条评论。

发表评论


此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据