如何将shell脚本args总结为一个字符串

时间:2018-05-12 15:37:57

标签: shell

我正在写一个快速的gitpush.sh文件。

git add -u
git commit -m 'quick update: '$1
git push origin master
echo $1

运行时,我想向其添加自定义消息。所以不要写:

sh gitpush.sh a_commit_for_lala_land

被视为$1

我想写

sh gitpush.sh a commit for lala land

没有下划线。如何修改$1以总结多个参数,并在每个参数之间用空格形成一个句子?

修改 我知道这可能不适合git用法。但我只需要一个我独自工作的无关紧要的项目(没有分支机构等)。

2 个答案:

答案 0 :(得分:2)

您可以使用$*连接所有参数,例如:

git commit -m "$*"

注意:在连接时,它将使用$IFS的值作为分隔符 - 如果它被定义为空格以外的其他内容,则可以在调用$*之前临时重新定义它。

答案 1 :(得分:2)

正确使用引号:

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

然后当你调用脚本时:

sh gitpush.sh "a commit for lala land"

如果您真的反对使用引号,请让脚本提示您输入消息,而不是将其作为多个参数传递:

printf 'Commit message: ' >&2
IFS= read -r msg
git add -u
git commit -m "quick update: $msg"
git push origin master
echo "$msg"