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

黄山网站建设推荐常州网架生产厂家

黄山网站建设推荐,常州网架生产厂家,泰安的网站建设公司,互联网创业项目整合网站1. 使用if-then语句 如果之前用过其他编程语言的if-then语句#xff0c;那么这种形式可能会让你有点儿困惑。在其他编程语言中#xff0c;if语句之后的对象是一个等式#xff0c;其求值结果为TRUE或FALSE。但bash shell的if语句并非如此。 重点#xff1a;bash shell的if…1. 使用if-then语句 如果之前用过其他编程语言的if-then语句那么这种形式可能会让你有点儿困惑。在其他编程语言中if语句之后的对象是一个等式其求值结果为TRUE或FALSE。但bash shell的if语句并非如此。 重点bash shell的if语句会运行if之后的命令。如果该命令的退出状态码为0命令成功运行那么位于then部分的命令就会被执行。如果该命令的退出状态码是其他值则then部分的命令不会被执行bash shell会接着处理脚本中的下一条命令。fi语句用来表示if-then语句到此结束。 # !/bin/bashtestuserNoSuchUser # if grep $testuser /etc/passwd thenecho The script files in the home directory of $testuser are:ls /home/$testuser/*.shecho elseecho The user $testuser does not exist on this system.echo fi 2. test命令 test命令可以在if-then语句中测试不同的条件。如果test命令中列出的条件成立那么test命令就会退出并返回退出状态码0。这样if-then语句的工作方式就和其他编程语言中的if-then语句差不多了。如果条件不成立那么test命令就会退出并返回非0的退出状态码这使得if-then语句不会再被执行。 test命令的格式非常简单 test conditiondemo: # !/bin/bash my_variableif test $my_variable thenecho The my_variable variable has content and returns a True.echo The my_variable variable content is: $my_variable elseecho The my_variable variable doesnt have content,echo and returns a False. fi bash shell提供了另一种条件测试方式无须在if-then语句中写明test命令 if [ condition ] thencommands fi # 方括号定义了测试条件。注意第一个方括号之后和第二个方括号之前必须留有空格否则就会报错。test命令和测试条件可以判断3类条件: 数值比较字符串比较文件比较 2.1 数值比较 比较描述n1 -eq n2检查n1是否等于n2n1 -ge n2检查n1是否大于或者等于n2n1 -gt n2检查n1是否大于n2n1 -le n2检查n1是否小于或者等于n2n1 -lt n2检查n1是否小于n2n1 -ne n2检查n1是否不等于n2 数值条件测试可用于数字和变量。来看一个例子 # !/bin/bash value110 value211 # if [ $value1 -gt 5 ] thenecho The test value $value1 is greater than 5. fi # if [ $value1 -eq $value2 ] thenecho The values are equal. elseecho The values are different. fi 注意对于条件测试bash shell只能处理整数。尽管可以将浮点值用于某些命令比如echo但它们在条件测试下无法正常工作。 2.2 字符串比较 比较描述str1 str2检查str1是否和str2相同str1 str2检查str2是否和str2不同str1 str2检查str2是否小于str2str1 str2检查str2是否大于str2-n str1检查str1的长度是否不为0-z str1检查str1的长度是否为0 字符串的相等和不等条件不言自明很容易看出两个字符串值是否相同 # !/bin/bashtestuserchristine # if [ $testuser christine ] thenecho The testuser variable contains: christine elseecho The testuser variable contains: $testuser fi 要测试一个字符串是否大于或小于另一个字符串就开始变得棘手了。使用测试条件的大于或小于功能时会出现两个经常困扰shell程序员的问题。·大于号和小于号必须转义否则shell会将其视为重定向符将字符串值当作文件名。 # !/bin/bashstring1soccer string2zorbfootballif [ $string1 \ $string2 ] thenecho $string1 is greater than $string2 elseecho $string1 is less than $string2 fi -n和-z可以很方便地用于检查一个变量是否为空 # !/bin/bash string1Soccer string2 # if [ -n $string1 ] thenecho The string $string1 is NOT empty elseecho The string $string1 IS empty fi # if [ -z $string2 ] thenecho The string $string2 IS empty elseecho The string $string2 is NOT empty fi # if [ -z $string3 ] thenecho The string $string3 IS empty elseecho The string $string3 is NOT empty fi2.3文件比较 比较描述-d file检查file是否存在且为目录-e file检查file是否存在-f file检查file是否存在且为文件-r file检查file是否存在且可读-s file检查file是否存在且非空-w file检查file是否存在且可写-x file检查file是否存在且可执行-O file检查file是否存在且属当前用户所有-G file检查file是否存在且默认组与当前用户相同file1 -nt file2检查file1是否比file2新file1 -ot file2检查file1是否比file2旧 -d测试会检查指定的目录是否存在于系统中。如果打算将文件写入目录或是准备切换到某个目录那么先测试一下总是件好事 # !/bin/bashjump_directory$(pwd) # if [ -d $jump_directory ] thenecho The $jump_directory directory exists.cd $jump_directoryls elseecho The $jump_directory directory does NOT exist. fi 3. 复合条件测试 if-then语句允许使用布尔逻辑将测试条件组合起来。可以使用以下两种布尔运算符。 [ condition1 ] [ condition2 ] 第一种布尔运算使用布尔运算符AND来组合两个条件。要执行then部分的命令两个条件都必须满足。[ condition1 ] || [ condition2 ]第二种布尔运算使用OR布尔运算符来组合两个条件。如果任意条件为真那么then部分的命令就会执行。 # !/bin/bash echo $HOME if [ -d $HOME ] [ -w $HOME/newfile ] thenecho The file exists and you can write to it. # elseecho You cannot write to the file. # fi4. if-then的高级特性 bash shell还提供了3个可在if-then语句中使用的高级特性。· 在子shell中执行命令的单括号。 用于数学表达式的双括号。 用于高级字符串处理功能的双方括号。 接下来将详细描述各个特性。 4.1 使用单括号 在bash shell执行command之前会先创建一个子shell然后在其中执行命令。如果命令成功结束则退出状态码参见第11章会被设为0then部分的命令就会被执行。如果命令的退出状态码不为0则不执行then部分的命令。来看一个使用子shell进行测试的例子 # !/bin/bashecho $BASH_SUBSHELL if (echo $BASH_SUBSHELL) thenecho The subshell command operated successfully. # elseecho The subshell command was NOT successful. # fi4.2 使用双括号 双括号命令允许在比较过程中使用高级数学表达式。test命令在进行比较的时候只能使用简单的算术操作。双括号命令提供了更多的数学符号这些符号对有过其他编程语言经验的程序员而言并不陌生。双括号命令的格式如下 (( expression ))双括号命令符号: 符号描述val后增val–后减val先增–val先减逻辑求反~位求反**幂运算左位移右位移位布尔AND|位布尔OR逻辑AND||逻辑OR 双括号命令既可以在if语句中使用也可以在脚本中的普通命令里用来赋值 # !/bin/bashval110 # if (( $val1 ** 2 90 )) then(( val2 $val1 ** 2 ))echo The square of $val1 is $val2,echo which is greater than 90. # fi 4.3 使用双括号 双方括号命令提供了针对字符串比较的高级特性。双方括号的格式如下 [[ expression ]]expression可以使用test命令中的标准字符串比较。除此之外它还提供了test命令所不具备的另一个特性——模式匹配。 在进行模式匹配时可以定义通配符或正则表达式匹配字符串 # !/bin/bash echo $BASH_VERSIONif [[ $BASH_VERSION 4.* ]] thenecho You are using the Bash Shell version 5 series. fi 5. case命令 有了case命令就无须再写大量的elif语句来检查同一个变量的值了。case命令会采用列表格式来检查变量的多个值 case variable in pattern1 | pattern2) commands1;; pattern3) commands2;; *) default commands;; esaccase命令会将指定变量与不同模式进行比较。如果变量与模式匹配那么shell就会执行为该模式指定的命令。你可以通过竖线运算符在一行中分隔出多个模式。星号会捕获所有与已知模式不匹配的值。下面是一个将if-then-else程序转换成使用case命令的例子 # !/bin/bashusertimcase $user in rich | christine)echo Welcome $userecho Please enjoy your visit.;; barbara | tim)echo Hi there, $userecho Were glad you could join us.;; testing)echo Please log out when done with test.;; *)echo Sorry, you are not allowed here. esac
http://www.zqtcl.cn/news/494222/

相关文章:

  • 免费快速建站网站做网站用什么数据库
  • 哪有做课件赚钱的网站温州设计公司排名
  • 西安网站建设公司php大气企业网站
  • 天河公司网站建设内蒙古建设厅安全资料网站
  • 学习网站的建设怎么做网站建设作业
  • 做公司产品展示网站企业网盘源码
  • 南通做网站企业初中生代表性设计制作作品图片
  • php框架做网站好处网站后台模板免费下载
  • 新兴县建设局网站建筑工程网络计划技术
  • 住房和城乡建设部网站北京网站建设设计规划
  • 哪个网站做logo设计师网络营销心得体会800字
  • 广州一起做的网站动态数据库网站
  • 网站程序预装深圳市住房和建设局陈斌
  • 网站建设历程wordpress国内主题排行
  • 公司网站建设及优化计划书找能做网站的
  • 网站建设方案模板下载南宁有名的网络公司
  • 本地做织梦网站做软件怎么赚钱
  • a站全称重庆大学网络教育平台
  • 美橙做过网站案例好文案网站
  • 鞍山商城网站建设国外代理ip
  • 东莞网站设计风格wordpress不能启动怎么解决
  • 社交网站制作临海建设局网站导航
  • 合肥需要做网站的公司佛山网站制作的公司
  • 哪里有做网站平台建设网站如何盈利
  • dw网站制作素材单人做网站需要掌握哪些知识
  • 网络推广产品公司做移动网站优化首
  • 网站建设dqcx广告网络用语
  • 烟台网站建设首推企汇互联见效付款手机网站宽度自适应
  • 网站建设小程序湖南wordpress插件刷不出来
  • 中国建设银行网站首页joy荣添创意网站建设