1

我正在尝试制作一个 bash 脚本,它将:

  1. 将所有更改添加到 git
  2. 提交我传递给 bash 脚本的消息
  3. 将其推送到仓库

我正在尝试这样做:

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

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

我怎样才能看到它实际上在做什么?当我放在echo有问题的行(我认为是提交)前面时,我得到了一个正确格式的命令。如果我把它放到终端上,我会运行 find。

4

1 回答 1

4

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

#!/bin/bash -xv

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

相反,将违规行更改为

git commit -m "$m"
于 2013-02-16T20:13:31.193 回答