set -x

默认情况下,脚本执行后,屏幕只显示运行结果,没有其他内容。如果多个命令连续执行,它们的运行结果就会连续输出。有时会分不清,某一段内容是什么命令产生的。

set -x用来在运行结果之前,先输出执行的那一行命令。

1
2
3
4

!/usr/bin/env bash

set -x

echo bar
执行上面的脚本,结果如下。

1
2
3
$ bash script.sh

  • echo bar
    bar
    可以看到,执行echo bar之前,该命令会先打印出来,行首以+表示。这对于调试复杂的脚本是很有用的。

-x还有另一种写法-o xtrace。

1
set -o xtrace
个人不建议用-e/-u这样的写法,不容易读,写成下面的样子会让人更容易理解。

1
2
3
set -o errexit
set -o nounset
set -o pipefail

posted @ 2019-10-16 11:22  _白马非马  阅读(875)  评论(0编辑  收藏  举报