使用bash将带有空格的字符串作为git commit消息发送

时间:2012-11-08 00:42:59

标签: linux string git bash whitespace

我正在创建一个更新git分支的bash脚本,一切正常但现在我想添加选项以将提交消息指定为参数。

我先用这个命令:

echo "Executing git commit..."
git commit -m "$1"

但是当我发送这样的东西时:

$ git.sh "testing commit message"

我收到一堆错误告诉我git无法识别命令。

我认为在这种情况下,我添加的双引号不是将参数作为单个字符串传递,而是传递给多个,所以只有第一个被-m选项占用,git尝试将其他参数作为提交选项传递。

当从脚本参数中获取多字符串时,是否有更好的方法可以将多字符串作为git commit消息传递?

我真的很感激你有任何建议。

2 个答案:

答案 0 :(得分:4)

shell评估命令时会删除引号。

使用类似

的内容
git commit -m "'$1'"

答案 1 :(得分:1)

这对我有用:

git commit -m "$(echo $@)"