【基础教程】介绍 Shell Scripts

简介: 介绍 Shell Scripts

本人是电子科技大学大二计算机科学与技术专业学生,通过阿里云首页广告了解到飞天加速计划·高校学生在家实践”活动。接下来我将为大家介绍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的撰写中还需要用到底下的注意事项:

  1. 指令的执行是从上而下、从左而右的分析与执行;
  2. 指令、选项与参数间的多个空白都会被忽略掉;
  3. 空白行也将被忽略掉,并且[tab]按键所推开的空白同样视为空格键;
  4. 如果读取到一个Enter符号(CR),就尝试开始执行该行 (或该串) 命令;
  5. 至于如果一行的内容太多,则可以使用『[Enter]』来延伸至下一行;
  6. 『#』可做为批注!任何加在#后面的资料将全部被视为批注文字而被忽略!

    如此一来,我们在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

相关文章
|
7月前
|
网络协议 Shell Linux
【Shell 命令集合 网络通讯 】Linux 创建网络连接 nc命令 使用教程
【Shell 命令集合 网络通讯 】Linux 创建网络连接 nc命令 使用教程
237 1
|
7月前
|
Linux Shell C语言
【Shell 命令集合 磁盘维护 】Linux 分区管理的工具 sfdisk命令使用教程
【Shell 命令集合 磁盘维护 】Linux 分区管理的工具 sfdisk命令使用教程
76 1
|
7月前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
108 1
|
7月前
|
网络协议 Shell Linux
【Shell 命令集合 网络通讯 】Linux 设置和配置PPP pppsetup命令 使用教程
【Shell 命令集合 网络通讯 】Linux 设置和配置PPP pppsetup命令 使用教程
210 0
|
7月前
|
缓存 网络协议 Linux
【Shell 命令集合 网络通讯 】Linux 配置DNS dnsconf 命令 使用教程
【Shell 命令集合 网络通讯 】Linux 配置DNS dnsconf 命令 使用教程
165 0
|
7月前
|
Shell Linux API
【Shell 命令集合 磁盘维护 】Linux 查找指定目录下的所有符号链接文件 symlinks 命令使用教程
【Shell 命令集合 磁盘维护 】Linux 查找指定目录下的所有符号链接文件 symlinks 命令使用教程
94 1
|
7月前
|
Shell Linux C语言
【Shell 命令集合 磁盘维护 】Linux 创建一个初始化内存盘 mkinitrd命令使用教程
【Shell 命令集合 磁盘维护 】Linux 创建一个初始化内存盘 mkinitrd命令使用教程
106 0
|
7月前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 创建一个用作交换空间(swap space)的特殊文件或设备 mkswap命令使用教程
【Shell 命令集合 磁盘维护 】Linux 创建一个用作交换空间(swap space)的特殊文件或设备 mkswap命令使用教程
87 0
|
2月前
|
JavaScript 前端开发 Shell
Shell 教程
10月更文挑战第1天
31 4
|
5月前
|
JavaScript 前端开发 Shell
Shell 脚本编程保姆级教程(上)
Shell 脚本编程保姆级教程(上)