前端其实命令行用的并不多,无非cd cat vi ,连mkdir都很少用到,也就一直没怎么注意过shell,听说程序员会为了省去2小时的麻烦而花4小时写个脚本,只是当个段子听听,完全体会不到背后的乐趣,可今天的一个事,让我彻底爱上命令行。

我参加了一个github公共项目,里面每个人都有提交代码,一直很想把优秀的前10名同学的代码clone下来,但github在国内的访问速度有多慢大家也都知道,再加上需要来回切换网页,挨个找到项目地址,再新建文件夹clone,下载速度很慢,且项目名都相同,必须挨个新建不重名的文件夹后再clone进去,总之:步骤繁杂,网速也慢,费时费力——这是程序员无法忍受的。

我想起了那个段子,心想要不要写个脚本呢?

抱着知难而退的犹豫态度,我看了下需求情况:发现在一个公共github项目中,各用户的仓库地址都是以项目名.git结尾,前面除用户名以外,其余都一样,比如:

1
https://github.com/用户名/项目名.git

只有用户名变动,那就好办了,感觉可行,就立马找了个简单的shell教程,把要拷贝的用户名填进数组里,然后接下来的逻辑就很简单了,从查看语法到写出脚本,花了十来分钟:

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/sh
mkdir test_shell
cd test_shell

namelist=("username" "username" "username" "username" "username" "username" "username" "username" "username")
for data in ${namelist[@]}
do
mkdir ${data}
cd ${data}
git clone https://github.com/${data}/projectname.git
cd ..
echo ${data}
done

就这么抱着试试的态度运行了一遍:

1
sh test.sh //真的只是试试,文件名还是test

就一遍,一下就跑通了,看着终端在屏幕上自动打印的一行行进度提示,我简直惊呆了,短短几分钟,在自动创建的文件夹下,挨个clone完毕,我只是执行了下命令,中间没有任何多余操作,真爽!

感觉shell是世界上最好的语言!有木有!

瞬间爱上命令行。