跟踪shell脚本中执行的shell命令(例如zsh)

Max*_*yak 1 bash shell scripting zsh command-line-interface

给定一个构建和执行某些命令的shell脚本(带有条件,连接和插值)(在我的情况下调用ImageMagick的convertcli),有没有办法列出在该脚本中执行的命令?由于脚本convert多次调用args,我想获得如下列表.

convert ...
convert ...
convert ...
...
Run Code Online (Sandbox Code Playgroud)

我在OS X中使用zsh,但可以切换到bash等.

Sat*_*tya 6

坚持一个

set -x
Run Code Online (Sandbox Code Playgroud)

在脚本的顶部.在bash中工作,应该在zsh中工作.

  • @hakunin:如果涉及的所有脚本都是zsh脚本,那么有一种方法:将`set -x`添加到`/ tmp/somedir/.zshenv`并使用`ZDOTDIR =/tmp/somedir/path/to/script运行脚本`.对于ksh脚本,设置`ENV =/tmp/env.sh`,其中`env.sh`包含`set -x`.对于bash脚本,请设置`BASH_ENV`. (2认同)