shell脚本

交互式shell     输入一条指令,执行一条
批处理shell     一次性处理真个shell脚本

查看所有的shell解释器:cat /etc/shells
查看当前的shell解释器:echo $SHELL

SHELL = 脚本声明 + 注释信息 + 可执行语句

脚本声明 #!: 指定使用哪个解释器
注释 #:对可执行语句的介绍
可执行语句:执行的具体指令 

执行shell 脚本的三种方法
./ 脚本文件路径 ./shell
sh 脚本文件路径 sh shell
source 脚本文件路径: source shell 

shell接收用户参数:sh shell脚本  参数1 参数2 参数3
$1-9,${10},${11} 获取参数位置的参数
$# 总共有多少个参数
$* 所有位置变量的值
$? 判断上一条是否执行成功

文件判断 [ 操作符 文件/目录 ] 两边有空格
-d 是否为目录
-e 文件/目录是否已经存在
-f 判断是否为文件
-r 当前用户是否有权限读
-w 当前游湖是否有权限读写
-x 测试当前用户是否有权限执行
//获取可使用的内存区域
FreeMem=`free -m | grep cache: | awk '{print $3}'`
free -m 查看内存使用量  grep cache: 获取带有'cache:'的这一行 awk '{print $3} 只保留第三列

控制流语句

单分支结构
if [条件] 
    then [操作] 
fi
双分支结构
if [条件] 
    then [操作] 
else [操作] 

fi

  1. #!/bin/bash
  2. # -c 3 数据包个数 -i 0.2 秒发送一个数据包 -W 三秒没发送完就超时
  3. ping -3 -0.2 -3 $1 &> /dev/null
  4. if [ $? -eq 0 ]
  5. then echo "Address : $1 is up"
  6. else echo "Address : $1 is down"
  7. fi

多分支结构
if [条件] 
    then [操作] 
elif [条件] 
    then [操作] 
else [操作] 
fi
  1. #!/bin/bash
  2. # 输入变量
  3. read -p "Enter you score " score
  4. if [ $score -lt 0 ] || [ $score -gt 100 ]
  5. then echo "you score is $socre fial"
  6. elif [ $score -ge 90 ] && [ $score -le 100 ]
  7. then echo "you score excellent"
  8. elif [ $score -lt 90 ] && [ $score ge 70 ]
  9. then echo "you score pass"
  10. else
循环结构
for [变量名] in [取值列表]
    do[操作]
done

while [条件]
    do[操作]
done

选择语句
case [操作值] in
【条件1】
        命令序列1
        ;;
【条件2】)
        命令序列2
        ;;
* )
        默认命令序列
esac




posted @ 2017-05-11 13:56  要吃瘦的胖次  阅读(175)  评论(0)    收藏  举报