如何捕获正在运行的Shell脚本的原始命令?

时间:2019-03-30 02:58:31

标签: bash shell

作为一个例子,我试图捕获以下脚本输出的原始命令:

https://github.com/adampointer/go-deribit/blob/master/scripts/generate-models.sh

我试图遵循先前的答案:

BASH: echoing the last command run

但是我得到的输出如下:

last command is gojson -forcefloats -name="${struct}" -tags=json,mapstructure -pkg=${p} >> models/${p}/${name%.*}_request.go

我想做的是捕获原始命令,换句话说,将${struct}${p}${p}/${name%.*}之类的变量替换为使用的实际值。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

#!/usr/bin/env bash#!/bin/bash(如果有)之后的脚本顶部添加set -x

  

set -x在执行命令时打印命令及其参数

答案 1 :(得分:0)

以调试模式运行脚本,该脚本将跟踪脚本https://stackoverflow.com/a/10107170/988525中的所有命令。

您可以通过键入“ bash generate-models.sh -x”来执行此操作,而无需编辑脚本。