我正在尝试创建一个bash脚本:
我正在尝试这样做:
m=\"$*\"
git add -A
echo git commit -m $m
git push
但是,我收到的错误是error: pathspec 'Q2,' did not match any file(s) known to git.
我传递给脚本的所有单词。
我怎样才能看到它实际上在做什么?当我将echo
放在违规行(我认为是提交)之前时,我得到一个正确的表单命令。如果我把它放到终端,我就跑了。
答案 0 :(得分:4)
要查看bash正在做什么,请向shebang行添加-xv
个选项:
#!/bin/bash -xv
问题可能是引用。 m=\"$*\"
没有做你想做的事。 $m
如果包含空格,仍会分成几个单词,只有第一个单词以双引号开头,最后一个单词以双引号结尾。
相反,将违规行更改为
git commit -m "$m"