一、shell脚本简介
首先我们来看下这张图,可以帮助我们理解这个词语!
看图可知:shell其实是一个命令解释器,它的作用是解释用户输入的命令和程序,命令和程序可以理解成我们图中的应用程序,我们linux系统中的那些命令其实也都是一个个的小程序,只不过完成的是系统的应用功能。我们在系统的终端中输入一条命令,可以立马看到一条或者几条系统回复我们的信息,其实就是shell在帮我们回复,所以shell可以称之为命令解释器。这种从键盘一输入命令,就可以立马得到相应的回复信息,叫作交互的方式,相当于我们在和电脑交流。Shell存在于系统的最外层,所以算作操作系统的外壳,它之外的应用程序就不能算作操作系统了。我们从输入系统的账户密码开始,到登录系统以后的所有操作都是shell在帮我们解释执行的。
了解了shell之后,我们再来了解下shell脚本。如果我们的命令或者应用程序不在命令行直接执行,而是通过一个程序文件来执行时,这个程序就被称之为shell脚本。Shell脚本里面通常内置了多条命令,有的还包含控制语句,比如if和else的条件控制语句,for和select的循环控制语句等。这些内置在一个shell脚本中的命令通常是一次性执行完成,不会不停的返回信息给用户,这种通过文件执行脚本的方式称之为非交互方式。Shell脚本类似于windows下的批处理,但是它比批处理要强大一些,现在windows下有一个叫做power shell的功能可以和linux下的shell功能媲美。
我们可以在文本中输入一系列的命令、控制语句和变量,这一切有机的结合起来就形成了功能强大的shell脚本。
二、新建Shell脚本
新建
# 直接新建脚本文件并进入编辑
vim ShellTest.sh
# 或者
vi ShellTest.sh
进入后:
i:开始编辑
Esc Shift + :(冒号) wq 保存退出
编辑Shell内容
#!/bin/bash
echo "Hello World !"
第一行是固定开头
第二行打印 hello world
执行
bash ShellTest.sh
注:作为可执行程序当在root用户下新建文件时,文件的默认权限为 -rw-r–r–,即文件在root用户下可读写,其他用户只能读不能写,但是所有用户都无法执行。因此执行命令
chmod +x ShellTest.sh
将脚本文件变为可执行文件,执行后的权限为 -rwxr-xr-x ,即所有用户都可执行。然后执行
./ShellTest.sh
作为解释器参数
这种运行方式直接运行解释器,把 shell 脚本的文件名作为解释器的参数,如:
/bin/sh ShellTest.sh
这种方式运行的脚本,不需要在第一行指定解释器信息,也不需要将脚本文件的权限转为可执行,只要作为参数的脚本文件的路径没错就行。
新建演示流程:
首先进入linux终端
输入vim test,sh
进入如下编辑界面:
英文模式下点击字母 i 进入编辑模式
输入内容
#!/bin/bash
echo "Hello World !"
输完代码后,先点Esc 然后同时按住 Shift + : (冒号)
输入wq
然后按Enter
. 保存并退回到终端界面
输入bash test.sh
运行脚本
执行代码,在终端打印出:Hello World !