shell脚本编程
Posted eristiser
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本编程相关的知识,希望对你有一定的参考价值。
Shell脚本编程
Shell是操作系统的最外层,是用户与Linux操作系统沟通的桥梁,用户输入命令,shell负责翻译成Linux内核可以理解的语言,也就是说shell是用户和操作系统之间的一个命令解释器,用户通过shell使用Linux。
shell也支持编程,主要用来开发实用的自动化的小工具,比如日志分析和检测计算机硬件参数。Shell是一种脚本语言,编写完源码以后不需要编译,直接运行源码就可以了,因为它边执行边翻译,所以使用灵活便捷,非常适合小工具的制作以及web开发。
Shell的类型非常多,常见的类型有:
- Bourne shell(/usr/bin/sh或/bin/sh);
- Bourne again shell(/bin/bash);
- C shell(/usr/bin/csh);
- K shell(/usr/bin/ksh);
- Shell for root(/sbin/sh)。
接下来主要介绍shell脚本编程。
Shell脚本编程注意事项
- Shell脚本命名名称一般使用英文字母,可包含下划线,不能使用空格;
- Shell脚本变量名称以字母或下划线“_”开头;
- Shell脚本后缀以.sh结尾;
- Shell脚本内容首行需以#!/bin/bash(固定格式,定义该脚本使用的shell类型)开头。
shell变量
shell在使用变量时不需要事先声明变量,shell给一个变量赋值,实际上就是定义了变量。
shell编程中变量分为三种:系统变量、环境变量、用户变量。系统变量在对参数判断和命令返回值判断时使用,包括脚本和函数的参数以及脚本和函数的返回值,而环境变量则主要是在程序运行时需要设置,环境变量会影响到所有的脚本的执行结果。使用一个定义过的变量,只要在变量名前面加美元符号即可。
(1)shell编程常见系统变量:
- $0:当前脚本的名称;
- $n:当前脚本的第n个参数;
- $*:当前脚本的所有参数;
- $#:当前脚本参数个数;
- $?:命令或程序执行完后的状态,返回0表示执行成功;
- $$:程序本身的PID号。
(2)shell编程常见环境变量如下:
- PATH:命令所示路径,以冒号为分割;
- SHELL:打印用户家目录;
- USER:打印当前用户名;
- ID:打印当前用户ID信息;
- PWD:显示当前所在路径;
- TERM:打印当前终端类型;
- HOSTNAME:显示当前主机名。
shell脚本
一个shell脚本通常包含以下几个部分:
1.首行
#!/bin/bash 固定格式,定义该脚本所使用的shell类型;
2.注释
如#This is my first shell #号表示注释,shell不会解析它;
3.内容
可执行的内容
shell脚本的执行方式
1. ./a.sh #利用小数点
2. bash a.sh 或sh a.sh
3. source a.sh
for循环语句
for循环语句主要用于对某个数据域进行循环读取、对文件进行遍历。
for 变量 in()
do
语句
done
while循环语句
while循环语句与for循环功能类似,满足循环条件会一直循环,不满足则退出循环。
while(表达式)
do
语句
done
select选择语句
select语句一般用于选择,常用于选择菜单的创建。
select i in(表达式)
do
语句
done
shell函数
shell允许将一组命令集或语句形成一个可用块,这些块称为shell函数,shell函数的好处在于只需定义一次,后期随时使用,无需在shell脚本中添加重复的语句块。函数也有类似于别名的作用,简单的说,函数的作用就是将程序里面多次被调用的代码组合起来,称为函数体,并取一个名字称为(函数名),当我们需要用到这段代码的时候,我们就可以直接来调用函数名。其格式以“function name(){"开头。
shell编程函数默认不能将参数传入()内部,shell函数参数传递在调用函数名称时传递,例如name argv1 argv2,
function name(){
command1
command2
...
}
name argv1 argv2
当我们定义函数过多的情况下,我们可以把函数写在某一个文件中,当我们写脚本的时候需要用到这个函数中的某一个指令,那么我们就可以直接来调用文件中的函数名。
以上是关于shell脚本编程的主要内容,如果未能解决你的问题,请参考以下文章