本人是电子科技大学大二计算机科学与技术专业学生,通过阿里云首页广告了解到飞天加速计划·高校学生在家实践”活动。接下来我将为大家介绍Shell Scripts。
什么是 Shell scripts
什么是shel lscript(程序化脚本)呢?就字面上的意义,我script是『脚本、剧本』的意思。整句话是说,shel lscript是针对shell所写的『剧本!』
什么东西啊?其实,shel lscript是利用shell的功能所写的一个『程序(program)』,这个程序是使用纯文本文件,将一些shell的语法与指令(含外部指令)写在里面,搭配正规表示法、管线命令与数据流重导向等功能,以达到我们所想要的处理目的。
所以,简单的说,shel lscript就像是早期DOS年代的批处理文件(.bat),最简单的功能就是将许多指令汇整写在一起,让使用者很轻易的就能够onet ouch的方法去处理复杂的动作(执行一个文件"shel lscript",就能够一次执行多个指令)。而且shel lscript更提供数组、循环、条件与逻辑判断等重要功能,让用户也可以直接以shell来撰写程序,而不必使用类似C程序语言等传统程序撰写的语法呢!
这么说你可以了解了吗?是的!shel lscript可以简单的被看成是批处理文件,也可以被说成是一个程序语言,且这个程序语言由于都是利用shell与相关工具指令,所以不需要编译即可执行,且拥有不错的除错(debug)工具,所以,他可以帮助系统管理员快速的管理好主机。
第一支 script 的撰写与执行
如同前面讲到的,shell script其实就是纯文本档,我们可以编辑这个文件,然后让这个文件来帮我们一次执行多个指令,或者是利用一些运算与逻辑判断来帮我们达成某些功能。所以啦,要编辑这个文件的内容时,当然就需要具备有bash指令下达的相关认识。
在shell script的撰写中还需要用到底下的注意事项:
- 指令的执行是从上而下、从左而右的分析与执行;
- 指令、选项与参数间的多个空白都会被忽略掉;
- 空白行也将被忽略掉,并且[tab]按键所推开的空白同样视为空格键;
- 如果读取到一个Enter符号(CR),就尝试开始执行该行 (或该串) 命令;
- 至于如果一行的内容太多,则可以使用『[Enter]』来延伸至下一行;
- 『#』可做为批注!任何加在#后面的资料将全部被视为批注文字而被忽略!
如此一来,我们在script 所撰写的程序,就会被一行一行的执行。现在我们假设你写的这个程序文件名是 /home/dmtsai/shell.sh好了,那如何执行这个文件?很简单,可以有底下几个方法:
直接指令下达:shell.sh 文件必须要具备可读与可执行 (rx) 的权限,然后:
o 绝对路径:使用/home/dmtsai/shell.sh来下达指令;
o 相对路径:假设工作目录在/home/dmtsai/,则使用./shell.sh来执行
o 变量『PATH』功能:将 shell.sh 放在 PATH 指定的目录内,例如:~/bin/
示例:`
[dmtsai@1 ~]$ mkdir bin; cd bin
[dmtsai@1 bin]$ vim hello.sh
!/bin/bash
Program:
This program shows "Hello World!" in your screen.
History:
2022/10/01 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
echo -e "Hello World! \a \n"
exit 0