为什么我的 bash 脚本的参数会导致错误?

为什么我的 bash 脚本的参数会导致错误?

为了方便将代码上传到github,我创建了一个sh脚本

#commit.sh
git add .
git commit -m $1
git push origin master

但是当我通过以下方式运行它时./commit.sh "comment1 comment2 comment3",我收到以下错误:

error: pathspec 'comment2' did not match any file(s) known to git.
error: pathspec 'comment3' did not match any file(s) known to git.

出了什么问题以及我该如何让它工作?

答案1

总是引用你的变量!将其改为

git commit -m "$1"

进而

./commit.sh "comment1 comment2 comment3"

将工作。

答案2

您可以将多个命令组合在一行中。

git add . && git commit -m "Your commit message" && git push origin master

这行代码非常适合用作命令:

gitpush()
{
git add . && git commit -m "$1" && git push origin master
}

如果将该命令放在.bash_aliases文件中,则可以按如下方式使用它:

gitpush "finally fixed that long-standing bug"

只有每一步都执行成功,这个命令才会起作用。

相关内容