持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情
这周开始说说shell的应用,shell的好处就不用多说了,将我们的很多命令集结在一起,下次执行的时候直接运行这个脚本文件就行,省去了很多事(比如自动化拉取分支代码部署);如果没有机器,网上有在线工具可以操作学习下;
首先shell是一个脚本语言,它用于存放各种指令,无需编译我们只需要sh xx.sh就可以执行了;我们先简单的输出个hello,world;我们得在指令开头声明用什么解释器去执行该脚本;通常选择**#!/bin/bash**,使用ls /bin |grep sh来看下我们支持的解释,
然后我们创建个文件,我一般用touch来创建文件,有人喜欢直接vi,看个人爱好;
touch test.sh
然后vi test.sh,输入我们的执行语句,注意:别丢了#!/bin/bash
#!/bin/bashecho "Hello World !"
最后保存,然后执行sh test.sh运行,我们看下返回
我执行./test.sh的时候报Permission denied,我们需要添加可执行权限
chmod +x test.sh
然后输入ll后前面就会变成rwx,就表示修改成功了,同时文件会变成绿色;
我们看下两种方式的区别;
./test.sh :指按文件中#!指定的解析器解析
如果#!指定指定的解析器不存在会使用系统默认的解析器
sh test.sh:指明先用sh解析器解析
如果sh不存在会使用默认解析器
有时候我们可能脚本里面有逻辑判断好比如果我执行脚本传的value是0则部署开发分支的包,如果value是1则部署测试分支的包,这个怎么写呢,我们看下;
首先我们再建个package.sh,我们在里面写上
#!/bin/bash
echo "${0}"
if [ ${1} -eq 0 ]
then
echo "我在打Dev分支!"
else
echo "我在打test分支!"
fi
这里解释下${0}表示执行的第一个参数--即文件名,这串代码表示的是如果我执行该命令时给的参数是0就打印我在打Dev分支!,给1打印我在打test分支!,这里要注意if那里的中括号,里面的内容要加空格,不然有问题,反正就是写shell就多打点空格,记着就行;fi表示结束,固定的搭配,不可不写;看下执行情况;
这个逻辑部分以及入参部分只是个例子,简单入门,后面细说,后面会根据网上的教程结构一点一点学习,一点一点记录,下一篇,shell读取变量;好啦🥗🥗🥗;
结束结束,那就🛴🛴🛴