[英]"git push origin master" gives weird behavior in bash script
我的 bashrc 文件中有这个简单的函数
function aupgrade {
cat ~/.bash_aliases > ~/bash/.bash_aliases
cd ~/bash
git add .
if [[ $1 == "" ]]; then
git commit -m "Update"
else
git commit -m "$1"
fi
git push origin master
cd - 1>/dev/null
}
这个函数有一个目的,这是预期的行为:
首先,将 bash 存储库中 .bash_aliases 文件的内容替换为cat ~/.bash_aliases
的标准输出
其次,进入~/bash
目录,这是一个 git 存储库
三、阶段性变化
第四,如果在调用aupgrade
函数时下面的参数没有任何内容,只需提交“更新”消息,但如果用户写了一个参数,比如aupgrade "New commit!"
, 使用诸如消息之类的参数提交更改, git commit -m $1
五、推动变化
六、回到上一目录
但是,它不会那样做,而是会那样做:
首先,将 bash 存储库中 .bash_aliases 文件的内容替换为cat ~/.bash_aliases
的标准输出
其次,进入~/bash
目录,这是一个 git 存储库
三、阶段性变化
第四,尽管有争论,但提交“更新”消息
五、推动变化
六、回到上一目录
这很奇怪。 这看起来像是git push origin master
line 的产物。 这不是条件问题,因为当我编写另一个这样的函数但没有git push origin master
line 时,它按预期工作。
为什么会发生这种情况? 有什么解决办法吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.