实现:一个用来 pull 代码的 shell 脚本
最近每次在 github 拉代码,都需要手动输一遍,有点麻烦。刚好看了一下 shell 脚本是怎么写的。
用 sh 写了一下命令。https://github.com/laputaz/get-code
效果其实特别简单,主要就是为了练习练习 shell 脚本的写法。
实现
- 建立文件夹
首先会提示,请输入文件夹名称。当文件夹名字是空的时候,继续提示。
1 2 3 4 5
| read -p '请输入文件夹名称:' -a FLODER while [ -z $FLODER ]; do read -p '名称为空, 请重新输入:' -a FLODER done
|
- 判断文件夹是不是已存在。
如果选是,提示是否删除重建;
否则退出。
1 2 3 4 5 6 7 8 9 10
| if [ -d $FLODER ]; then read -p "文件夹已存在, 是否删除文件夹并重建?(y/n)" -n 1 echo '' if [[ $REPLY =~ ^[Yy]$ ]]; then rm -rf $FLODER else exit fi fi
|
- 定义一个新建文件夹并进入文件夹的函数。进入后创建一个 README.md 文件。
1 2 3 4 5 6
| newDir() { mkdir $FLODER cd $FLODER touch README.md }
|
- 执行新建并进入文件夹。
- 提示输入仓库地址,如果为空, 或者格式不对(以 ssh/http 开头),提示重新输入。
1 2 3 4 5 6 7 8
| read -p '请输入仓库地址:' -a URL while [ -z $URL ]; do read -p '地址为空, 请重新输入:' -a URL done while [[ ! $URL =~ ^(http)|(ssh)$ ]]; do read -p '地址格式不正确, 请重新输入:' -a URL done
|
- 提示输入仓库别名。默认是 origin。
1 2 3 4 5 6
| read -p '请输入远程仓库别名 (默认为 origin):' -a NAME if [ -z $NAME ]; then NAME='origin' fi
|
- 提示输入分支名。
1 2 3 4 5
| read -p '请输入分支名 (默认为 master) :' -a BRANCH if [ -z $BRANCH ]; then BRANCH='master' fi
|
- 最后执行 git 命令,切到对应分支,并提交。
1 2 3 4 5 6 7 8
| git init git remote add $NAME $URL git checkout -b $BRANCH git pull $NAME $BRANCH git add . git commit -m "add README.md" git push $NAME $BRANCH
|
效果
-
版权声明: 本博客所有文章除特别声明外,均采用
CC BY 4.0 CN协议
许可协议。转载请注明出处!
Жизнь, как качели - то вверх, то вниз.