Linux中bash编程

bash编程也叫shell编程

预定义变量
         $? 最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确的执行;如果这个变量返回的值非0(具体是那个数,有命令自己来决定),则证明上一个命令执行不正确。
         $$当前进程的进程号(PID)
         $!后台运行的最后一个进程的进程号(PID)
  运算符
         declare 声名变量的类型  
         declare [+/-][选项] 变量名
         – 给变量设定类型属性
         + 取消变量的类型属性
         -i 将变量声名为整数型
         -x将变量什申明为环境变量
         -p 显示指定变量的被声名的类型

举例:

a=1 b=2 declare -i c = $a+$b c=$(($a+$b))

注意用双小括号,因为Linux中认为一切皆为字符。

如果不加()当成一个命令,shell脚本中Linux命令在 $() 中运行,当然可以直接写命令,如果则一些引用命令时 就要 $()


单分支if  条件语句

if [ 条件判断式 ];then
    程序
fi
or  
if [ 条件判断式 ]
    then
        程序
fi

判断登录用户是否为root用户:

#!/bin/bash

#grep 获取行通配符
#cut 获取列统配符,以 = 分割 2 获取第二列
login_name=$(env | grep LOGNAME | cut -d "=" -f 2)
#echo $login_name

if [ "$login_name" != "root" ]

        then
                echo 'isnot root'
fi

判断根分区的占用率

#!/bin/bash
#df -h 任性话显示磁盘的利用率
#awk 获取第五列
#cut 对字符用 % 进行分割 获取第一列值
result=$( df -h | grep sda1 | awk '{print  $5}'  | cut -d % -f 1)

if [ "$result" -lt '90' ]
        then
                echo 'the root dir  is not full'

fi

双分支if条件语句

if [ 条件判断式 ]
    then
         ...
    else
        ...
fi

判断nginx 是否在运行 (最好不用包含nginx作为文件名)

#!/bin/bash
result=$(ps aux | grep nginx | grep -v grep)

if [ -n "$result" ]
        then
                echo "$(date) nginx is ok !"
        else
                echo "$(date) nginx is not ok !"

                sudo /etc/init.d/nginx start &>/dev/null
                echo "$(date) restart nginx !!"
fi

多分支if语句

if []
    then 
elif []
    then
...
else 
   ...
if
0 条评论
发表一条评论