我正在创建一个更新git分支的bash脚本,一切正常但现在我想添加选项以将提交消息指定为参数。
我先用这个命令:
echo "Executing git commit..."
git commit -m "$1"
但是当我发送这样的东西时:
$ git.sh "testing commit message"
我收到一堆错误告诉我git无法识别命令。
我认为在这种情况下,我添加的双引号不是将参数作为单个字符串传递,而是传递给多个,所以只有第一个被-m选项占用,git尝试将其他参数作为提交选项传递。
当从脚本参数中获取多字符串时,是否有更好的方法可以将多字符串作为git commit消息传递?
我真的很感激你有任何建议。
答案 0 :(得分:4)
shell评估命令时会删除引号。
使用类似
的内容git commit -m "'$1'"
答案 1 :(得分:1)
这对我有用:
git commit -m "$(echo $@)"