Linux如何记录运行的Bash命令?

通常情况下,我会写一个脚本来处理数据,脚本中难免会有错误的地方,如果能记录下真实运行的命令,就能检查是否有bug存在,也便于以后查阅。因此,我在网上搜索到了一些解决方法。

(1) 在脚本中添加set +o xtrace/sex -x 或使用-x选项执行脚本 bash -x script.sh

上述三种方式都可以在执行脚本的同时,输出运行的命令,并在命令前用+标记。比如:

bash -x script.sh > stdout.log 2> cmd.log

可以把脚本的输出保存在stdout.log文件中,把运行过的命令保存在cmd.log中。

(2) 另一种思路是把要运行的命令当成一个字符串或者数组,分成两步来实现输出命令和执行命令的目的。比如:
myArray=(some commands)

#将要执行的命令保存成数组myArray
echo “${myArray[@]}”

#输出要执行的命令
“${myArray[@]}”

#执行要执行的命令
又比如:
myString=‘some commands’

#将要执行的命令保存成数组myString
echo $myString

#输出要执行的命令
eval $myString

#执行要执行的命令

参考:(1)https://stackoverflow.com/questions/5750450/bash-print-each-command-before-executing?noredirect=1&lq=1
(2)https://stackoverflow.com/questions/2853803/in-a-shell-script-echo-shell-commands-as-they-are-executed
(3)https://askubuntu.com/questions/763332/execute-a-command-stored-into-a-variable
(4)https://stackoverflow.com/questions/2005192/how-to-execute-a-bash-command-stored-as-a-string-with-quotes-and-asterisk
(5)http://mywiki.wooledge.org/BashFAQ/050

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sta@ma@brain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值