当前位置: 首页 > news >正文

福清市建设局监督站网站dede网站seo

福清市建设局监督站网站,dede网站seo,永久免费asp空间,filezilla wordpressshell编程之条件语句 一、条件测试操作1.test命令2.文件测试3.利用条件判断#xff0c;创建文件4.整数值比较4.1 常用的测试操作符 5.字符串比较5.1 常用的测试操作符 6.逻辑测试6.1 常用的测试操作符 二、if语句的结构1.单分支结构2.双分支结构3.多分支结构4.if嵌套 三、case… shell编程之条件语句 一、条件测试操作1.test命令2.文件测试3.利用条件判断创建文件4.整数值比较4.1 常用的测试操作符 5.字符串比较5.1 常用的测试操作符 6.逻辑测试6.1 常用的测试操作符 二、if语句的结构1.单分支结构2.双分支结构3.多分支结构4.if嵌套 三、case语句结构1.case多分支结构 前言 在shell脚本程序中各条语句将按先后顺序依次执行从而实现批量处理的自动化过程。通过正确使用if语句进行条件测试操作使Shell脚本具有一定的“判断”能力以根据不同的条件来完成不同的管理任务。从而减轻了管理员本身的负担提升工作效率。 一、条件测试操作 1.test命令 测试表达式是否成立若成立返回0否则返回其他数值格式 格式一test 条件表达式 格式二[ 条件表达式 ] //中括号和表达式中间至少应有一个空格2.文件测试 要使 Shell脚本程序具备一定的智能面临的第一个问题就是如何区分不同的情况以确定执行何种操作。例如当磁盘使用率超过95%时发送告警信息;当备份目录不存在时能够自动创建;当源码编译程序时若配置失败则不再继续安装等shell环境根据命令执行后的返回状态值 $? 来判断是否执行成功当返回值为 0 时表示成功否则非0值表示失败或异常。使用专门的测试工具——test 命令可以对特定条件进行测试并根据返回值来判断条件是否成立返回值为0表示条件成立。 语法格式 [ 操作符 文件或目录 ]常用的测试操作符 -d测试是否为目录Directory) -e测试目录或文件是否存在(Exist) -f测试是否为文件(File) -r测试当前用户是否有权限读取(Read) -w测试当前用户是否有权限写入(Write) -x测试当前用户是否有权限执行(eXcute) -b测试是否为设备文件 -c测试是否为字符设备文件 -s测试存在且文件大小为空 -L测试是否为链接文件 执行条件测试操作以后通过预定义变量 $ ? 可以获得测试命令的返回状态值 从而判断该条件是否成立。例如执行以下操作可测试目录/media/是否存在如果返回值 $? 为 0表示存在此目录否则表示不存在或者虽然存在但不是目录 [rootc7-1 home]# test -d /etc/sysconfig/ echo 是目录 //如果前面的命令成功了 则运行后面的命令返回结果 是目录是而且的意思 是目录 [rootc7-1 home]# echo $? 0 #存在此目录[rootc7-1 home]# [ -d /home/dashiji/ ] [rootc7-1 home]# echo $? 1 #目录不存在[rootc7-1 home]# useradd dashiji [rootc7-1 home]# [ -d /home/dashiji/ ] echo YES YES [rootc7-1 home]# echo $? 0 3.利用条件判断创建文件 [rootc7-1 home]# ls /opt //查看opt下没有dashiji文件 rh [rootc7-1 home]# [ ! -e /opt/dashiji ] mkdir /opt/dashiji #感叹号取反 -e 测试目录或文件是否存在 若不存在 则创建[rootc7-1 home]# echo $? 0 [rootc7-1 home]# ls /opt/ dashiji rh #再次查看opt下已经有了dashiji4.整数值比较 格式 [ 整数1 操作符 整数2 ]整数值比较指的是根据给定的两个整数值判断第一个数与第二个数的关系如是否大于、等 于、小于第二个数。整数值比较的常用操作选项如下使用时将操作选项放在要比较的两个整 数之间。4.1 常用的测试操作符 -eq第一个数等于Equal)第二个数。 -ne第一个数不等于Not Equal第二个数。 -gt第一个数大于( Greater Than)第二个数。 -lt第一个数小于(Lesser Than)第二个数。 -le第一个数小于或等于(Lesser or Equal)第二个数。 -ge第一个数大于或等于(Greater or Equal)第二个数 例 [rootc7-1 home]# who | wc -l //统计几个远程终端 3 [rootc7-1 home]# [ $(who | wc -l ) -le 5 ] echo 用户太少 用户太少 #判断远程终端是否小于等于五若小于等于则再运行后面的命令echo 用户太少[rootc7-1 home]# [ $(who | wc -l ) -ge 2 ] echo 用户太多 用户太多[rootc7-1 home]# Freec$(free -m | grep Mem: | awk {print $6}) #定义变量Freec检索Men并打印其中第六列 [rootc7-1 home]# [ $Freec -lt 1024 ] echo ${Freec}MB 416MB #判断Freec是否小于1024若小于则运行 echo ${Freec}MB 5.字符串比较 格式一 [ 字符串1 字符串2 ] [ 字符串1 ! 字符串2 ]格式二 [ -z 字符串 ]5.1 常用的测试操作符 字符串内容相同第一个字符串与第二个字符串相同。 第一个字符串与第二个字符串不相同号表示相反的意思 -z 检查字符串是否为空(Zero对于未定义或赋予空值的变量将视为空串。 例 [rootc7-1 ~]# echo $LANG zh_CN.UTF-8 [rootc7-1 ~]# [ $LANG ! en.US ] echo not en.US not en.US #测试语言环境判断是否为英文LANG等不等于en.US若不等于执行后面的命令 not en.US[rootc7-1 ~]# read -p yes/no: ACK yes/no: ^C [rootc7-1 ~]# [ -z $ACK ] echo 你的变量是空字符 你的变量是空字符 6.逻辑测试 逻辑测试指的是判断两个或多个条件之间的依赖关系。当系统任务取决于多个不同的条件时 根据这些条件是否同时成立或者只要有其中一个成立等情况需要有一个测试的过程格式1 [ 表达式1 ] 操作符 [ 表达式2 ]格式2 命令1 操作符 命令26.1 常用的测试操作符 -a 或 逻辑与“而且”的意思只有当前后两个条件都成立时整个测试命令的返回值﹐才 为0结果成立)。使用test命令测试时 可改为 -a -o 或 || 逻辑或“或者”的意思只要前后两个条件中有一个成立整个测试命令的返回值即 为0结果成立)。使用test命令测试时 || 可改为 -o逻辑否表示不只有当指定的条件不成立时整个测试命令的返回值才为0结果 成立。例 [rootc7-1 ~]# [ -d /etc ] [ -r /etc ] echo you can open it you can open it #只有前后两个条件都成立才能返回0[rootc7-1 ~]# [ -d /etc/ ] || [ -d /opt/ ] echo ok ok #有一个条件成立即可[rootc7-1 ~]# Munm$(uname -r | awk -F. {print $1}) [rootc7-1 ~]# echo $Munm 3 [rootc7-1 ~]# Snum$(uname -r | awk -F. {print $2}) [rootc7-1 ~]# echo $Snum 10 [rootc7-1 ~]# [ $Munm -ge 3 ] [ $Snum -ge 6 ] echo true true #查看当前Linux系统的内核版本是否大于3.4 二、if语句的结构 1.单分支结构 格式if 条件测试操作then 命令序列fi例 [rootc7-1 ~]# vim test1.sh#!/bin/bash //固定格式 if ls /opt /dev/dull //if条件测试判断查看是否有opt目录并把输出信息给黑洞 then //条件成立echo it is ok //则echo一个it is ok fi //fi 结束判断[rootc7-1 ~]# chmod x test1.sh //给权限 [rootc7-1 ~]# ./test1.sh //执行 it is ok [rootc7-1 ~]# vim test2.sh#!/bin/bash MOUNT_DIR/mnt/centos7 //定义变量 if [ ! -e $MOUNT_DIR ] //if判断 是否/mnt/centos7 不存在 then //条件成立mkdir /mnt/centos7 //创建 /mnt/centos7 echo $MOUNT_DIR 并不存在现已创建 //输出返回值 fi //fi 结束判断[rootc7-1 ~]# chmod x test2.sh //给与权限 [rootc7-1 ~]# ./test2.sh //执行 /mnt/centos7 并不存在现已创建 [rootc7-1 ~]# ls /mnt centos7 [rootc7-1 ~]# vim test3.sh#!/bin/bash read -p 请输入文件名 fileif [[ $file *.sh ]] thenecho 这是一个shell脚本 fi[rootc7-1 ~]# ./test3.sh 请输入文件名test1.sh 这是一个shell脚本 2.双分支结构 格式if 条件测试操作then 命令序列1else 命令序列2fi例 [rootc7-1 ~]# vim test4.sh#!/bin/bashIP192.168.3.101 //定义变量ping -c 2 -i 0.2 -W 3 $IP /dev/null //ping2次输出给黑洞if [ $? -eq 0 ];then //判断$?是否等于0echo $IP is up //条件成立输出 IP is up else //条件不成立echo $IP is down //输出 IP is down fi[rootc7-1 ~]# ./test4.sh 192.168.3.101 is up [rootc7-1 ~]# ./test4.sh 192.168.3.101 is down [rootc7-1 ~]# vim test5.sh#!/bin/bash if [ $UID -eq 0 ];thenecho 当前登陆用户是管理员root elseecho 当前登陆用户不是管理员root fi [rootc7-1 ~]# sh test5.sh 当前登陆用户是管理员root[rootc7-1 ~]# cp test5.sh /home/zhangsan/ [rootc7-1 ~]# cd /home/zhangsan/ [rootc7-1 zhangsan]# chmod x test5.sh [rootc7-1 zhangsan]# su zhangsan [zhangsanc7-1 ~]$ ./test5.sh 当前登陆用户不是管理员root 3.多分支结构 #格式if 条件测试操作1then 命令序列1elif 条件测试操作2then 命令序列2else命令序列3fi例 [rootc7-1 zhangsan]# vim test6.sh#!/bin/bash read -p 请输入您的分数(0-100) GRADEif [ $GRADE -ge 85 ] [ $GRADE -le 100 ] //判断$GRADE 是否大于85小于100 thenecho $GRADE 分优秀 //条件满足则输出,不满足则继续往下进行判断elif [ $GRADE -ge 60 ] [ $GRADE -le 84 ] //判断是否大于60小于84 then echo $GRADE 分合格 elif [ $GRADE -ge 100 ] thenecho 请输入分数为0~100 else //以上条件都不成立echo $GRADE 分不合格 fi 4.if嵌套 [rootc7-1 ~]# vim httpd.sh#!/bin/bash pgrep -l httpd //查找httpd进程 if [ $? -ne 0 ] //判断是否在运行 then //条件成立则if [ $(rpm -q httpd)未安装软件包 httpd ] //判断httpd是否安装then //条件成立yum install -y httpd //没安装则安装systemctl start httpd //启动服务echo httpd服务已安装启动 //输出已启动else //若以上条件不成立systemctl start httpd //启动httpdecho httpd服务已启动 //输出服务已启动fi //结束判断 else //若以上条件都不成立 echo httpd is running //则输出running fi //结束判断 [rootc7-1 ~]# vim user.sh#!/bin/bash read -p 请输入用户名 user //定义交互式变量 if grep $user /etc/passwd /dev/dull //条件测试判断是否有这个用户并输入给黑洞 then //条件成立 则if [ -d /home/$user ] //判断用户是否有家目录then //若条件成立echo 该用户状态正常 //输出状态正常else //若以上条件都不成立read -p 该用户没有家目录是否删除该用户请输入[yes/no]: ask //定义交互式变量if [ $ask yes ] //判断输入的是不是yesthen //若条件成立echo 正在删除用户。。。 //输出userdel $user /dev/null;sleep 2 //删除该用户并延迟两秒echo 该用户已删除 //输出elif [ $ask no ] //条件测试2判断输入的是不是nothen //若条件成立exit //退出fi //结束判断fi //结束判断else //若以上条件都不成立echo 该用户不存在 //输出一个该用户不存在 fi //结束判断 三、case语句结构 1.case多分支结构 格式 case 变量值 in 模式1命令序列1;; 模式2命令序列2;;………*)默认命令序列 esac 例 [rootc7-1 ~]# vim test7.sh#!/bin/bash case $1 in start) /usr/bin/systemctl $1 httpd /usr/bin/ps aux | grep httpd echo httpd start ;;stop) /usr/bin/systemctl $1 httpd /usr/bin/ps aux | grep httpd echo httpd stop ;;restart) echo httpd stop...... /usr/bin/ps aux | grep httpd /usr/bin/systemctl $1 httpd echo httpd restart...... /usr/bin/ps aux |grep httpd ;;status) /usr/bin/systemctl $1 httpd ;; *) echo plases inpunt start|stop|restart|status esac
http://www.hkea.cn/news/14591857/

相关文章:

  • 佛山响应式网站设计网页视频怎么下载到电脑
  • 高端网站改版网站备案通管局
  • 做网站应聘平台上海电子商务网站开发
  • 用vs2010做网站应用程序脱机建设银行E路航如何自动进入网站
  • 虎牙网页游戏大厅淄博网站排名优化
  • 网站链接结构怎么修改网站的域名
  • dede网站名称海城整站优化
  • 越秀手机网站建设最好的app开发公司
  • 自动发卡网站怎么做中国百强城市榜单发布2021
  • 可信的移动网站建设广西壮族自治区简称
  • c 网站建设教程视频余江县建设局网站
  • 深圳网站公司好能打开任何网站浏览器
  • 惠州网站建设咨询建设学校网站方案
  • 做淘宝还是京东还是做网站安全证查询官网
  • 科技公司网站主页设计做网站送给女友意义
  • 如何做自己的vip视频解析网站湖南最新消息今天
  • 电子商务网站开发课程设计论文网页设计怎样做一个网页
  • 做公司 网站建设公司网站建站软件
  • 创意 国外 网站iis7.5部署网站
  • 邢台做移动网站的地方为什么网站有不同的扩展名
  • 中英企业网站模板成立网站建设领导小组的通知
  • 网站首页效果图怎么做WordPress给文章添加省份
  • 微网站ui多少钱wordpress中修改内容
  • 儿童主题网站的内容建设山东省建设业协会网站
  • 经验丰富的网站制作公司重庆排名前十的互联网公司
  • 天河网站建设哪家强网站建设续签合同怎么签
  • 网站建设的宗旨四川城乡建设厅官方网站
  • 公司网站推广技巧英文网站建设需要准备什么
  • 微课网站建设项目怎样做网络推广效果好
  • 做游戏必备的几个网站网站开发交易网站