如何打印实际运行的bash脚本?

时间:2013-02-16 20:09:39

标签: bash

我正在尝试创建一个bash脚本:

  1. 将所有更改添加到git
  2. 使用我传递给bash脚本的消息提交
  3. 将其推送至回购
  4. 我正在尝试这样做:

    m=\"$*\"
    git add -A
    echo git commit -m $m
    git push
    

    但是,我收到的错误是error: pathspec 'Q2,' did not match any file(s) known to git.我传递给脚本的所有单词。

    我怎样才能看到它实际上在做什么?当我将echo放在违规行(我认为是提交)之前时,我得到一个正确的表单命令。如果我把它放到终端,我就跑了。

1 个答案:

答案 0 :(得分:4)

要查看bash正在做什么,请向shebang行添加-xv个选项:

#!/bin/bash -xv

问题可能是引用。 m=\"$*\"没有做你想做的事。 $m如果包含空格,仍会分成几个单词,只有第一个单词以双引号开头,最后一个单词以双引号结尾。

相反,将违规行更改为

git commit -m "$m"