bash脚本从set -x复制输出到文件,从脚本中调用而不是使用tee

时间:2016-01-28 06:42:51

标签: bash ssh

我想知道是否有办法将set -x输出写入脚本中的文件,而不是从命令提示符调用tee

例如,我通常在命令提示符下使用myScript.sh 2>&1 | tee mylog.log。这会将set -x复制到我希望的日志文件中。

有没有办法在myScript.sh内部化它,所以如果我不需要调试,我可以将其设置为关闭的标志。仅从命令提示符运行myScript.sh

THX 领域

1 个答案:

答案 0 :(得分:1)

在您的脚本中,将此行放在顶部:

#!/bin/bash

[[ $1 == "debug" ]] && { exec 2>err.txt; set -x; }

# rest of the script

现在,当您将脚本称为:

./myScript.sh debug

您将获得一个创建为err.txt的文件,其中包含set -x的输出(如果有其他错误)