shell脚本编程

Posted eristiser

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本编程相关的知识,希望对你有一定的参考价值。

Shell脚本编程

Shell是操作系统的最外层,是用户与Linux操作系统沟通的桥梁,用户输入命令,shell负责翻译成Linux内核可以理解的语言,也就是说shell是用户和操作系统之间的一个命令解释器,用户通过shell使用Linux。

shell也支持编程,主要用来开发实用的自动化的小工具,比如日志分析和检测计算机硬件参数。Shell是一种脚本语言,编写完源码以后不需要编译,直接运行源码就可以了,因为它边执行边翻译,所以使用灵活便捷,非常适合小工具的制作以及web开发。

Shell的类型非常多,常见的类型有:

 

  1.   Bourne shell(/usr/bin/sh或/bin/sh);
  2.   Bourne again shell(/bin/bash);
  3.   C shell(/usr/bin/csh);
  4.   K shell(/usr/bin/ksh);
  5.   Shell for root(/sbin/sh)。

    接下来主要介绍shell脚本编程。

 

Shell脚本编程注意事项

 

  1.   Shell脚本命名名称一般使用英文字母,可包含下划线,不能使用空格;
  2.   Shell脚本变量名称以字母或下划线“_”开头;
  3.   Shell脚本后缀以.sh结尾;
  4.   Shell脚本内容首行需以#!/bin/bash(固定格式,定义该脚本使用的shell类型)开头。

 

shell变量

 

shell在使用变量时不需要事先声明变量,shell给一个变量赋值,实际上就是定义了变量。

shell编程中变量分为三种:系统变量、环境变量、用户变量。系统变量在对参数判断和命令返回值判断时使用,包括脚本和函数的参数以及脚本和函数的返回值,而环境变量则主要是在程序运行时需要设置,环境变量会影响到所有的脚本的执行结果。使用一个定义过的变量,只要在变量名前面加美元符号即可。

 

(1)shell编程常见系统变量:

  1.   $0:当前脚本的名称;
  2.   $n:当前脚本的第n个参数;
  3.   $*:当前脚本的所有参数;
  4.   $#:当前脚本参数个数;
  5.   $?:命令或程序执行完后的状态,返回0表示执行成功;
  6.   $$:程序本身的PID号。

 

  (2)shell编程常见环境变量如下:

  1.   PATH:命令所示路径,以冒号为分割;
  2.   SHELL:打印用户家目录;
  3.   USER:打印当前用户名;
  4.   ID:打印当前用户ID信息;
  5.   PWD:显示当前所在路径;
  6.   TERM:打印当前终端类型;
  7.   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脚本编程的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本编程学习笔记-shell脚本编程基础介绍

Shell脚本编程

shell脚本——shell编程规范与变量

Shell脚本--变量(后附简单shell脚本案例)!

shell批量执行多个shell脚本

shell脚本翻译 急求