shell脚本

SHELL将任何赋给变量的值都解释为字符串

新建脚本:vi  文件名.sh

脚本开头:#! /bin/bash

执行脚本:sh  文件名.sh

看我用的机器支持那种类型的sh脚本:echo $SHELL

一.命令:

date:显示时间

pwd:显示路径

shell脚本

 

二.$:变量引用符。

单引号:命令替换符。

  • today=`date`
  • echo today is $today

shell脚本

 

注:此处today是变量,需要用变量的引用符号$来引用其值。

      变量名可以由数字,字符下划线组成,但是变量名只能由字符下划线开头,而不能是数字。

      shell脚本中的变量将保存在内存中,直到该shell脚本结束或终止。也可以用unset命令清除变量。

shell脚本

 

exit 0:退出当前shell。

shell脚本

shell脚本

shell脚本

 

 

  • -e 解释转义字符

shell脚本

 

三.

$0:表示这个程序的文件名

$1 $2 ... $9:这个程序的第1个到第9个命令行参数值

$#:这个程序的参数个数(不包含命令名)

$*:这个程序的所有参数:“$1 $2 … $9”,把所有的参数保存在一个串中

$!:执行上一个背景指令的PID 

$?:执行上一个指令的返回值。

$$:这个程序的进程ID

shell脚本

 

四.                       

shell脚本

  • 该命令提供算术运算功能,并能对数字或非数字字符串进行计算。
  • expr命令将参数作为表达式,计算该表达式并将结果显示在标准输出设备上。

 

 

五.

shell脚本

  • 字符*(乘)在shell中有特殊含义,因此他们的前面必须有转义字符“\”
  • 如:expr2 \* 5
  • 当有变量参与运算时,需要在变量名前面加“$”
  • 如:a=11
  •         expr $a \% 2

 

六.

shell脚本

 

七.

shell脚本的控制语句

控制流命令用来调整在shell脚本中命令的执行顺序,

     if语句:

        if......then......fi控制语句

        if......then......else控制语句

        if......then......elif控制语句

     条件测试:

        test语句

     循环结构:

        while控制结构

        util控制结构

        for......in控制结构

        for控制结构

        break和continue

    case语句:

if......then......fi结构

语句格式:

   if [ condition ]

   then

       commands

   fi

      ......

注:条件外面的[ ]必不可少,条件前后必须加空格。

 

if......then......else......fi结构

语法格式:

if [ condition ]

then

  true - commands

else

  false - commands

fi

 

 

一.

shell脚本

 

二.

a+=$b----->a=a+b或a=$a+$b

shell脚本

 

 

三.IF--THEN--ELSE--FI

shell脚本

四.有关文件方面的测试

可以用test命令检测文件属性,如文件长度、文件类型和文件权限等。

操作符  功能

-r     文件是否存在并且用户可读

-w   文件是否存在并且用户可写

-x    文件是否存在并且用户可执行

-s    文件是否存在并且长度非0

-f     文件是否存在并且是普通文件

-d    文件是否存在并且是目录文件

五.if---then---elif---else--fi

shell脚本