You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Shell脚本的多个参数合并为单个字符串用于Git提交

解决gitpush.sh接收空格分隔提交消息的问题

嘿,这个小问题很好解决!不过先提个小细节:你原来的脚本里所有命令都写在一行、没有分隔符,执行的时候git add -u会把后面的git、commit这些当成文件路径处理,这会报错哦~先把命令分开,再解决参数的问题。

你的核心需求是接收空格分隔的多个参数作为提交消息,原来用$1只能捕获第一个参数,后面的内容都丢失了。要把所有传入的参数合并成带空格的字符串,只需要把$1换成"$*"(或者"$@",在这个场景下效果一致)——双引号包裹的$*会完整保留你输入的所有参数,包括它们之间的空格。

修改后的完整脚本如下:

git add -u
git commit -m "quick update: $*"
git push origin master
echo "$*"

简单解释下:

  • "$*" 会将所有传入的命令行参数合并成一个单一的字符串,参数之间用空格分隔
  • 必须用双引号包裹,否则Shell会把空格解析成参数分隔符,导致提交消息只保留第一个词
  • 把每个命令单独成行(或者用分号;分隔),避免Git把后续命令当成文件路径

现在你就可以直接输入空格分隔的内容啦:

sh gitpush.sh a commit for lala land

提交消息会自动变成quick update: a commit for lala land,完全符合你的需求~

既然你是个人独立开发的小型项目,这种简化用法完全没问题,不用纠结规范😉

内容的提问来源于stack exchange,提问作者George Pamfilis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:30:51