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

一键建站公司简单大气好记的公司名称

一键建站公司,简单大气好记的公司名称,北京ifc大厦,北京门头沟山洪暴发接着上一章继续 数值的对比 判断语句 循环语句 22.5 比较、对比、判断 在写脚本时#xff0c;有时需要做一些比较#xff0c;例如#xff0c;两个数字谁大谁小#xff0c;两个字符串是否相同等。 做对比的表达式有[]、[[]]、test#xff0c;其中[]和 test这两种表达式的…接着上一章继续 数值的对比 判断语句 循环语句 22.5 比较、对比、判断 在写脚本时有时需要做一些比较例如两个数字谁大谁小两个字符串是否相同等。 做对比的表达式有[]、[[]]、test其中[]和 test这两种表达式的作用是相同的。[[]]和[]的不同 在于,[[]]能识别通配符和正则表达式中的元字符[]却不能。 需要注意的是在比较时中括号和后续提及的比较符两边都要留有空格。 22.5.1数字的比较 数字的比较主要是比较两个数字谁大谁小或者是否相同。能用到的比较符有以下几 种。 1-eq相等。 2-ne不相等。 3-gt大于。 4-ge大于等于。 5-lt小于。 6-le小于等于。 做完比较之后通过返回值来判断比较是否成立。 练习1判断1等于2命令如下。 [rootpp yy]# [ 1 -eq 2 ] [rootpp yy]# echo $? 1 [rootpp yy]# 1是不能等于2的所以判断不成立返回值为非零。注意中括号和比较符两边的空格。 练习2判断1不等于2命令如下。 [rootpp yy]# [ 1 -ne 2 ] [rootpp yy]# echo $? 0 [rootpp yy]# 1不等于2所以判断成立返回值为0 22.5.2 字待串的比较 字符串的比较一般是比较两个字符串是否相同用得较多的比较符有以下两种。 1相同。 2!不相同。 做完比较之后通过返回值来判断比较是否成立。 练习1定义一个变量aatom然后做判断命令如下。 [rootpp yy]# aatom [rootpp yy]# [ $aa tom ] [rootpp yy]# echo $? 0 [rootpp yy]# 变量aa的值和 tom完全相同所以判断成立返回值为0。 练习2在判断中匹配通配符命令如下。 [rootpp yy]# aatom [rootpp yy]# [ $aa to? ] [rootpp yy]# echo $? 1 [rootpp yy]# 这里定义aatom按照前面讲过的通配符to?匹配的应该是前两个字符为to第三个 可以是任意字符所以 tom应该会被to?匹配到为什么返回值为非零呢? 原因在于在这一对中括号[]中是不能识别通配符的aa的值是t、o、m三个字符而等号 后面是t、o、?这三个字符并没有把问号当成通配符所以判断不成立。 如果想识别通配符,那么就要用双中括号[[]]看下面的判断。 [rootpp yy]# aatom [rootpp yy]# [[[ $aa to? ]] [rootpp yy]# echo $? 0 [rootpp yy]# 在[[]]中能识别通配符“?”所以这里判断成立返回值为0。 注意 1后面跟的是通配符如果想跟正则表达式比较符就不能使用了要换成~。 2一定要注意中括号和比较符两边的空格。 22.5.3 属性的判断 属性的判断用于判断一个文件是否具备某个属性常见的属性包括以下7种。 1-r具备读权限。 2-w具备写权限。 3-x具备可执行权限。 注意 以上三个属性不管是出现在u、g还是o上只要有就算判断成立。 -d一个目录。 -l一个软链接。 -f一个普通文件且要存在。 -e不管什么类型的文件只要存在就算判断成立。 练习1判断/etc/hosts具备r权限命令如下。 [rootpp yy]# ls -l /etc/hosts -rw-r--r--. 1 root root 158 9月 10 2018 /etc/hosts [rootpp yy]# [ -r /etc/hosts ] [rootpp yy]# echo $? 0 [rootpp yy]# 通过第一条命令可以看到/etc/hosts是具备r权限的判断/etc/hosts具备r权限自然成 立,所以返回值为0。 练习2判断/etc/hosts具备x权限命令如下。 [rootpp yy]# [ -x /etc/hosts ] [rootpp yy]# echo $? 1 [rootpp yy]# 22.5.4 使用连接符 前面讲的判断只是单个判断如果要同时做多个判断那么就需要使用连接符了。能用的 连接符包括“”和“||”。 先看一下使用作为连接符用法如下。 1 判断1 判断2 只有两个判断都为真返回值为0)整体才为真只要有一个为假整体就为假。判断1 如果为假判断2还有必要执行吗?没有因为整体已经确定为假了。判断1为真整体是真 是假在于判断2所以判断2肯定是要执行的。 [rootpp yy]# [ 1 -le 2 ] [ 2 -ge 3 ] [rootpp yy]# echo $? 1 [rootpp yy]# 下面看使用||作为连接符用法如下。 两个判断只要有一个为真(返回值为0)整体就为真只有全都为假整体才为假。 判断1为真,整体已经确定为真所以判断2没有必要执行。 判断1为假,整体是真是假在于判断2所以判断2肯定是要执行的。 [rootpp yy]# [ 1 -le 2 ] || [ 2 -ge 3 ] [rootpp yy]# echo $? 0 [rootpp yy]# 这里有两个判断第一个判断是1小于等于2这个判断成立整体已经确定为真所以 整个判断为真返回值为0。 22.6 if判断语句 在脚本中执行某条命令需要满足一定的条件如果不满足就不能执行。此时我们就要用到 判断语句了。 先看if判断if判断的语法如下。 1 if 条件1 ; then 2 命令1 3 elif 条件2 ; then 4 命令2 5 else 命令3 6 fi 先判断if后面的判断是不是成立。 如果成立则执行命令1然后跳到f后面执行6后面的命令。 如果不成立则不执行命令1然后判断elif后面的条件2是不是成立。 如果成立则执行命令2然后跳到f后面执行f后面的命令。 如果不成立则不执行命令2进行下一轮的elif 判断以此类推。 如果所有if和elif都不成立则执行clse中的命令3。 练习1写一个脚本/opt/sc1.sh要求只有root用户才能执行此脚本其他用户不能执 行,命令如下。 [rootpp opt]# cat sc1.sh #/bin/bash if [ $UID ‐ne 0 ]; then echo 只有root才能执行此脚本 exit 1 fi echo hello root [rootpp opt]# [rootpp opt]# chmod x /opt/sc1.sh 脚本分析如下。 root的uid是0其他用户的uid不为0。第一个判断如果uid不等于0则打印警告信 息“只有root才能执行此脚本”然后exit退出脚本。 如果这里不加 exit判断之后仍然会继续执行echo hello root命令这样判断就失去 了意义。只有加了exit之后如果不是root则到此结束不要继续往下执行了。 如果是blab 执行此脚本则判断成立打印完警告信息之后通过exit退出脚本。 如果是 root执行此脚本则判断不成立直接执行f后面的命令。 使用root用户执行此脚本的结果如下。 [rootpp opt]# ./sc1.sh hello root [rootpp opt]# 使用iu用户执行此脚本的结果如下。 [iupp opt]$ ./sc1.sh 只有root才能执行此脚本 [iupp opt]$ 22.7 for循环语句       有时我们需要做多次重复的操作例如创建100个用户创建一个用户需要两条命 令:useradd和 passwd。那么创建100个用户就要重复执行100次总共执行200条命令 此时我们就可以利用for循环简化操作让系统自动帮我们重复运行即可。         for循环的语法如下。 1 for 变量 in 值‐1 值‐2 值‐3 值‐4 ; do 2 命令 $变量 3 done 这里首先把值-1赋值给变量执行do和done之间的命令所有命令执行完成之后再把 值-2赋值给变量执行do和done之间的命令执行完所有命令之后再把值-3赋值给变 量以此类推,直到把所有的值都赋值给变量。 看一个简单的例子如下所示。 [iupp opt]$ for i in 1 2 3 4 ; dolet i$i10echo $idone 11 12 13 14 [iupp opt]$ 这里for后面定义了一个变量i在in后面指定了4个值分别是1、2、3、4。在do和done 之间定义了两个命令第一个是在变量i的原有值的基础上加上10然后打印i的值。 先把1赋值给i此时i的值为1执行do和 done之间的命令。i加上10之后,i的值变为了 11然后打印i得到11第一次循环结束。 然后把2赋值给i此时i的值为2执行do和done之间的命令。i加上10之后i的值变为了 12然后打印i,得到12第二次循环结束。 22.8 while 循环语句 while也可以循环while循环的语法如下。 1 while 判断 ; do 2 命令1 3 命令2 4 done 如果while后面的判断成立则执行do和 done之间的命令在最后一个命令执行完成之 后,会回头再次判断一下while后面的判断是不是成立。如果不成立则跳出循环执行done后 面的命令;如果成立则继续执行do和 done之间的命令就这样循环下去。 先看一个简单的例子写一个脚本/opt/sc3.sh命令如下。 [rootpp opt]# cat sc3.sh #!/bin/bash declare ‐i n1 while [ $n -le 4 ] ; do echo $n let n$n1 done [rootpp opt]# [rootpp opt]# chmod x /opt/sc3.sh 脚本分析如下。 这里先通过declare -i n1定义了一个整数类型的变量n初始值为1。然后进入 while进 行循环先判断$n的值是不是小于等于4如果成立则执行do和 done之间的命令。 一开始$n的值为1[ $n -le 4 ]这个判断成立则进人 do和done之间执行命令。首先打 印Sn的值然后在此基础上给n 加上1所以n的值变为了2这样do和done之间的命令就 执行完成了。然后再次到while后面进行判断此时$n的值为2依然满足小于等于4再次 执行do 和 done之间的命令。 如此反复当$n的值最终能增加到4时打印然后加1此时n的值变为了5。当Sn的值变 为5之后while后面的判断就不再成立了此时会跳出 while循环。 用while也可以用于循环一个文件的内容用法如下。 1 while read aa ; do 2 命令 3 done file 这里read后面的变量aa是可以随意指定的整体的意思是首先读取file的第一行内容赋值 给aa执行do和 done之间的命令。然后读取file的第二行内容赋值给aa执行do和done 之间的命令直到读取到file的最后一行。 有时while需要一直循环下去死循环)语法如下。 1 while true ; do 2 命令 3 done 或 1 while ((1)) ; do 2 命令 3 done 或 1 while : ; do 2 命令 3 done 下面写一个脚本来实时判断vsftpd是否启动如果没有启动则将vsftpd启动命令如 下。 [rootpp opt]# cat sc4.sh #!/bin/bash while : ; do systemctl is‐active vsftpd /dev/null if [ $? -ne 0 ]; then systemctl start vsftpd fi sleep 1 done [rootpp opt]# [rootpp opt]# chmod x sc4.sh 这里写了一个 while循环可以一直循环下去循环中先判断vsftpd是否启动如果启动 了则返回值为0如果没有启动则返回值为非零。 下面开始根据返回值来进行判断如果$?不等于0说明vsftpd没有启动则启动vsftpd 服务。sleep 1的意思是暂停1秒这样就实现了每隔1秒来判断一次vsfilpd是否启动。 下面开始测试这个脚本先把脚本放在后台运行,命令如下。 [rootpp opt]# ./sc4.sh [1] 3788测试当前vsftpd 的状态命令如下。 [rootpp opt]# systemctl is‐active vsftpd active [rootpp opt]# 关闭vsftpd服务之后再次检测vsftpd 的状态命令如下。 [rootpp opt]# systemctl stop vsftpd [rootpp opt]# systemctl is‐active vsftpd active [rootpp opt]# 可以看到vsftpd 仍然是启动的说明我们的脚本生效了。
http://www.tj-hxxt.cn/news/230439.html

相关文章:

  • 网站建设 招标任务书邓州网络推广有效的方法
  • 东莞网站优化方式懂得都懂晚上正能量
  • 广州网站建设(信科网络)seo搜索引擎优化就业前景
  • 如何建设网站哪个济南兴田德润简介网页界面设计课程
  • 网站建设开发 脚本语言电子商务有哪些工作岗位
  • 网站在哪做商丘行业网站建设开发公司
  • 公司网站开发策略和基本步骤太原网站改版
  • joomla 2.5:你的网站建设_使用与管理 pdf100个成功营销案例
  • 欧洲美妇做爰网站网站上的文章用秀米可以做吗
  • 写男主重生做网站的小说个人网页设计尺寸是多少
  • 公司注册网站有什么好处wordpress 局域网 慢
  • 淘宝客网站做好了该怎么做汇鑫网站建设方便
  • 网站开发阶段流程php做网站自动生成前台吗
  • 域名注册和网站设计服务珠海关键词优化收费
  • 蓝色风格企业网站如何做公众号
  • 免费企业网站建设介绍wordpress进阶
  • 先做网站 先备案网站建设高清图
  • 网站设计推广微网站特效
  • 商业网站开发教程东圃做网站的公司
  • 文献综述 php网站开发云服务器网站崩溃的原因
  • 如何申请我的网站做购物网站的素材
  • 求网站建设方法wordpress设置ssl网站打不开
  • 石家庄学做网站建设培训建设文明网 联盟网站的
  • 图书馆评估定级关于网站建设标准移动互联网技术体系架构示意图
  • 东营网站推广网站死链接提交
  • 好看的网站分享江苏seo策略
  • 公司网站的实例何使网站的页面结构更为合理建
  • 博客网站开发教程小型公司网络建设方案
  • 电子商务网站需求分析大学生学风建设专题网站
  • 网站logo的颜色与网页的颜色如何做网站推广广告