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

小网站搜什么关键词设计运动品牌网站

小网站搜什么关键词,设计运动品牌网站,黑科技,免费网站服务器安全软件下载接着上一章继续 数值的对比 判断语句 循环语句 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.sadfv.cn/news/134726/

相关文章:

  • 虹口专业做网站网站建设方案服务器
  • 网站建设案例教程视频网站模板 带手机端
  • 网站建设与维护教学课件网站换服务器有影响吗
  • 石家庄模板建站网站建设课程设计格式
  • 自己做网站设计制作163企业邮箱申请
  • 成品网站源码1688自动跳转注册wordpress账号
  • 外国设计网站做哪类视频网站需要视频牌照
  • 网站建设中网页代码物流公司排名
  • 如何使用华为云虚拟主机建设网站常见网站建设
  • 徐州网站开发设计平台如何制作手机网页
  • 微商城微网站开发宿州做网站的公司
  • 洛阳seo网站修改wordpress首页缩略图尺寸
  • 网站设计文字大小网站为什么做微云的采集
  • 个人备案 做网站一流的网站建设流程
  • 苏州新区高端网站制作做网站需要的图片去哪找
  • 电子商务网站建设与管理第二版答案邯郸网站建设公司排名
  • 西安网站建设公司 云阔黑龙江建设网ca数字证书如何注销
  • 手机网站版面设计网站规划与建设论文
  • 松原网站推广新网$网站优化
  • 正规网站建设首选公司新余建设网站
  • 网站开发哪家专业简述常用的网络营销方法
  • 网站建设站点无法发布如何做学校网站app
  • 阿里指数官方网站app运营费用预算
  • php网站好处厦门网站建设建网站
  • 南宁网站开发价格免费网站如何被百度收录
  • 山西建站推广wordpress 本机模拟
  • 上海建设局官方网站深圳建设工程交易服务中心网站
  • 锟鹏建设招聘网站大型外贸网站策划
  • 医院招聘网站建设和维护wordpress导出数据库结构
  • 网站版心怎么做网站开发劳动合同范本