Shell的编程过程
Shell独立与内核,它是连接内核和应用程序的桥梁,并由输入设备读取命令,再将其转为计算机可以理解的机械码,Linux内核才能执行该命令。
Shell是一种应用程序,当用户登陆Linux系统时,Shell就会被调入内存去执行。
Shell提供了用户与内核进行交互操作的一种接口,接收用户输入的命令,并把他送入内核去执行。
在Linux中,Shell不但能与用户进行逐个命令交互执行,也可以通过脚本语言进行编程。
通过对Shell进行编程,可使大量任务自动化,对于系统管理、系统维护方面特别有用。
Shell脚本的基本结构
Shell脚本在不同的Linux系统都能运行
可使用多种编辑器,如vim等
Shell脚本通常是以 .sh 为后缀
第一行要以 #! /bin/bash
开头 ,代表该文件使用的是bash语法
#
表示注释,后面跟一些该脚本相关的的注释内容以及作者、创建日期、版本等。
演示操作:
使用vim编辑器
新建文件first.sh
vim first.sh
按 i 进入编辑模式
第一行是要求要有的,作用:定义执行该shell的程序在哪,不加就系统默认:
#/bin/bash
第二行是注释:
#this is a shell
data命令显示时间,echo命令显示字符串:
date
echo "hello,word!"
按Esc键切换到命令模式,输入 :wq 保存退出
操作演示:让Shell脚本运行
给Shell文件赋予可执行的权限:
chmod a+x first.sh
检查权限:
ll first.sh
显示first.sh已有可执行权限(x)
下面执行:
方法一:
./first.sh
Shell脚本正常运行
方法二:通过Shell命令来执行Shell文件
sh first.sh
这种方式下不需要Shell脚本具有可执行权限
如果发现Shell文件的执行存在问题,可以对Shell脚本文件进行调试跟踪:
sh -x first.sh
其他知识点:
复习与Shell相关的命令
1.现在无论使用哪种Linux操作系统,默认的Shell总是
/bin/bash
。2.查看系统中SHELL变量的值:
echo $SHELL
3.查看系统内置了哪些Shell,有以下两种方法:
①
cat /etc/shells
②
chsh -list
1.创建Shell程序
与MS-DOS系统中的批处理文件类似,Linux中的脚本(Shell程序)是一个文本文件,包含各类Linux的Shell命令。通过脚本文件将这些命令汇集在一起,可连续执行shell命令。
举例:编写一个最简单的“Hello World!”程序。
步骤:
(1)创建一个用于保存文件的目录:
mkdir /usr/program
(2)在program目录下新建一个文本程序first。
(3)打开first文件,输入Shell的脚本。
1:
#!/bin/bash
2:
var=“Hello World!”
3:
echo $var
说明:
第1行告诉系统,该文件后面的代码将用/bin/bash来执行。这是一般Shell程序第1行中必须包含的内容。
第2行为变量var定义了一个字符串值。
第3行将变量var的值显示输出到终端。
2.设置执行权限
创建好first文件后,使用
ls -l
命令可以看到文件的所有者(这里是root )对该文件只有读和写的权限,没有执行权限。执行
chmod u+x /usr/program/first
为脚本文件设置所有者的执行权限。当然,也可以执行chmod a+x /usr/program/first
设置所有用户都可以运行该脚本程序。注意:与DOS或Windows中的批处理程序不同,Linux中的脚本文件不是按扩展名来识别,而是通过为文件添加执行权限来允许其执行,用户可以为脚本文件设置任意扩展名。
3.执行Shell程序
两种方法:
(1)使用Shell程序执行
#bash /usr/program/first
使用这种方法时,不需要设置脚本程序的可执行权限。
(2)直接执行
#/usr/program/first
使用这种方法时,需首先设置该文件的执行权限。
如果执行当前目录下的脚本文件,通常也应该使用一个点表示当前目录,如执行当前目录下的脚本文件test,可使用命令:
# ./test