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

学网站建设与维护深圳网站建设十强

学网站建设与维护,深圳网站建设十强,正规的网站建设官网,游戏网页在线玩十年运维系列之基础篇 - Linux 作者#xff1a;曾林 联系#xff1a;1494445739qq.com 网站#xff1a;www.jplatformx.com 版权#xff1a;文章未经同意请勿转载 一、使用if语句 通过shell#xff0c;我们可以来写出这样的一个使用if语句的shell脚本片段。如下所示…十年运维系列之基础篇 - Linux 作者曾林  联系1494445739qq.com 网站www.jplatformx.com 版权文章未经同意请勿转载   一、使用if语句 通过shell我们可以来写出这样的一个使用if语句的shell脚本片段。如下所示 #!/bin/bash # test if statementx5if [ $x 5 ]; thenecho x equals 5 elseecho x doesnt equals 5 fi       或者可以直接在命令行中输入以上代码略有简化如下图所示       if语句的语法格式如下 if commands; thencommands [elif commands; thencommands] [elsecommands] if       在这个语法格式中“command”可以是一组命令。乍看上去可能会有些迷惑。在去除这个迷惑之前我们必须要先了解一下shell如何判断一个命令的成功与失败。   二、退出状态   命令包括我们编写的shell脚本和shell函数在执行完毕后会向操作系统发送一个值称之为“退出状态”。这个值是一个0~255的整数用来指示命令执行成功还是失败。按照惯例数值0表示执行成功其他的数值表示执行失败。shell提供了一个可以用来检测退出状态的参数。这个参数就是$?。如下图所示   在这个例子中我们两次执行了ls命令。第一次命令执行成功如果显示参数“$?”的值可以看到值是0.第二次执行ls命令时产生了一个错误再次显示“$?”的值这次值是2表示这个命令遇到了一个错误。有些命令使用不同的退出值来诊断错误而需要命令执行失败时只是简单地退出并发送数字1.man手册中经常会包括一个标题为“Exit Status”的段落它描述使用的代码。数字0总是表示执行成功。   shell提供了2个非常简单的内置命令它们不做任何事情除了以一个0或1退出状态来终止执行。“true”命令总是表示执行成功而“false”命令总是表示执行失败。如下图所示   我们可以用这两个命令来查看if语句是如何工作的。if语句真正做的事情是评估命令的成功或失败。   当在if后面的命令执行成功时命令echo its true.会被执行而当在if后面的命令执行失败时该命令则不执行。如果在if后面有一系列的命令那么则根据最后一个命令的执行结果来进行评估。如下图所示   三、使用test命令   目前为止经常和if一起使用的命令是test。test命令会执行各种检查和比较。这个命令有两种等价的形式   test expression   以及更加流行的   [ expression ]   这里的expression是一个表达式其结果是true或false。当这个表达式为true时test命令会返回一个0退出状态当表达式为false时test命令的退出状态为1。 文件表达式expression   下表中的表达式展示的是有关文件的表达式。这些文件表达式用来评估文件的状态。 文件表达式成为true的条件file1 -ef file2file1和file2拥有相同的信息节点编号这两个文件通过硬链接指向同一个文件file1 -nt file2file1比file2新file1 -ot file2file1比file2旧-b filefile存在并且是一个块设备文件-c filefile存在并且是一个字符设备文件-d filefile存在并且是一个目录-e filefile存在-f filefile存在并且是一个普通文件-g filefile存在并且设置了组ID-G filefile存在并且属于有效组ID-k filefile存在并且有“粘滞位(sticky bit)属性”-L filefile存在并且是一个符号链接-O filefile存在并且属于有效用户ID-p filefile存在并且是一个命名管道-r filefile存在并且可读有效用户有可读权限-s filefile存在并且其长度大于0-S filefile存在并且是一个网络套接字-t fdfd是一个定向到终端/从终端定向的文件描述符可以用来确定标准输入/输出/错误是否被重定向-u filefile存在并且设置了setuid位-w filefile存在并且可写有效用户拥有可写权限-x filefile存在并且可执行有效用户拥有执行/搜索权限  下面代码展示了一个使用文件表达式的例子 #!/bin/bash# test-file: Evaluate the status of a fileFILE~/.bashrcif [ -e $FILE ]; thenif [ -f $FILE ]; thenecho $FILE is a regular file.fi if [ -d $FILE ]; thenecho $FILE is a directory.fi if [ -r $FILE ]; thenecho $FILE is readable.fi if [ -w $FILE ]; thenecho $FILE is writable.fi if [ -x $FILE ]; thenecho $FILE is executable/searchable.fi elseecho $FILE does not existexit 1 fiexit   关于上面的脚本需要注意两个有趣的地方。首先要注意$FILE在表达式内是如何被引用的。尽管引号不是必需的但是这可以防范参数为空的情况。如果$FILE的参数扩展产生一个空值将导致一个错误操作符会被解释为非空的字符串而不是操作符。用引号把参数括起来可以确保操作符后面总是跟随一个字符串即使字符串为空。其次注意脚本末尾的exit命令。这个exit命令接受一个单独的可选参数它将称为脚本的退出状态。当不传递参数时退出状态默认为0。以这种方法使用exit命令当$FILE扩展为一个不存在的文件名时可以允许脚本提示失败。这个exit命令出现在脚本的最后一行。这样当脚本执行到最后时不管怎么样默认情况下它将以退出状态0终止。   类似地通过在return命令中包含一个整数参数shell函数可以返回一个退出状态。如果要将上面的脚本转换为一个shell函数从而能够在一个更大的程序中使用可以将exit命令替换为return命令并得到想要的行为。   四、字符串表达式   下列表达式用来测试字符串的操作。 表达式称为true的条件stringstring不为空-n stringstring的长度大于0-z stringstring的长度等于0 string1 string2 string1 string2 string1和string2相等。单等号和双等号都可以使用但是双等号使用的更多。要注意在使用等号和不等于号的时候需要操作符两边加空格。否则执行结果不是你想象string1 string2在排序时string1在string2之后string1 string2在排序时string1在string2之前string1 ! string2string1和string2不相等  警告在使用test命令时“”和“”运算符必须用引号括起来或者是使用反斜杠来进行转义。如果不这么做就会被shell解释为重定向操作符从而造成潜在的破坏性结果。同时注意尽管bash文档中已经有过声明排序遵从当前语系的排列规则但并非如此。在bash 4.0版本以前包括4.0版本使用的是ASCIIPOSIX排序方式。   五、整数表达式   下表中的表达式可以用于整数。 表达式成为true的条件integer1 -eq integer2integer1和integer2相等integer1 -ne integer2integer1和integer2不相等integer1 -le integer2integer1小于等于integer2integer1 -lt integer2integer1小于integer2integer -gt integer2integer1大于integer2integer1 -ge integer2integer1大于等于integer2  六、更现代的test指令   bash提供了复合命令(())而不是[]test指令用来操作整数。该命令支持一套完整的算术计算。   复合指令(())用于执行算术真值测试arithmetic truth test。当算术计算的结果是非0值时则算术真值测试为true。       以下是一个使用(())复合命令来测试算术结果的样例脚本注意这里使用了小于号、等于号和大于号来测试相等性。在处理整数的时候这些语法看起来更加的自然。此外由于(())复合命令只是shell语法的一部分而非普通的命令并且只能处理整数。 #!/bin/bash# compound command (()) for arithmetic computingINT7if [ -z $INT ]; thenecho INT is empty. 2exit 1 elif (( $INT 0 )); thenecho INT equals zero. elif (( $INT 0 )); thenecho INT less than zero. elif (( $INT 0)); thenecho INT greater than zero. fiif (( $INT % 2 0)); thenecho INT is even. elseecho INT is odd. fi   七、组合表达式   我们也可以将表达式组合起来来创建更复杂的计算。表达式是使用逻辑运算符组合起来的。与test命令配套的逻辑运算符有三个它们是and, or和not。下表展示了逻辑操作符。 Operationtest(())AND-aOR-o||NOT!!  八、控制运算符另一种方式的分支   bash还提供了两种可以执行分支的控制运算符。“”和“||”运算符与上述复合命令中的逻辑运算符类似语法如下   command1 command2 和 command1 || command2   理解这两个运算符是非常重要的。对于“”运算符来说先执行command1只有在command1执行成功时command2才能够执行。对于“||”运算符来说先执行command1则只有command1执行失败的时候command2才能够执行。       从实用性考虑这意味着可以这样做 mkdir test cd test   这会创建一个temp目录并且当这个创建工作执行成功后当前的工作目录才会更改为temp。只有在第一个mkdir命令执行成功后才会尝试执行第二个命令。同样看如下命令 [ -d temp ] || mkdir temp   这个命令先检测temp目录是否存在只有当检测失败时才会创建这个目录。  转载于:https://www.cnblogs.com/jplatformx/p/4344575.html
http://www.pierceye.com/news/87475/

相关文章:

  • 在网上做效果图赚钱的网站百度关键字搜索到自己的网站
  • 网站的风格主要包括wordpress使用指南
  • 吉林省交通建设质量监督站网站软件开发交易平台
  • 如何注册网站域名鄂州网签查询
  • 外贸营销单页网站商业街网站建设方案
  • 温岭市住房和城乡建设规划局网站公司建站详细步骤
  • 单页营销网站模板小米发布会在哪里看直播
  • 做跨境网站注意深圳制作网站培训学校
  • 用v9做网站优化广东佛山最新通知
  • 医联媒体网站建设全国软件开发培训班
  • dede免费网站模板四川住房和城乡建设厅进不去网站
  • 大型网站开发受欢迎的永州网站建设
  • 石家庄做网站费用wordpress插件安装不
  • 网站优化包括网站开发 安全验证
  • 河南郑州网站制作企业小程序怎么申请注册
  • 做网站金山设计logo图片
  • 北京哪个网站建设最好网站建设如何做报价
  • 建立企业网站要多少钱10大营销理论
  • 网站开发及设计贵州省交通建设集团网站
  • 深圳宝安网站制作公司重庆免费建网站
  • 帝国cms电影网站模板公司网站发展策划书
  • 上市公司中 哪家网站做的好广东省建设监理协会网站
  • 宁波四方网络网站建设杭州余杭区抖音seo质量高
  • 云浮市住房和城乡建设局网站企业微信登录网页版
  • 赣州有没有做网站的注册域名后网站建设
  • 网站建设 工作职责wordpress实现新闻列表
  • 深圳专业做网站的公司哪家好wordpress 微博同步插件
  • seo网站优化公司网站设计的尺寸
  • 中山网站建设文化教程学院网站建设服务宗旨
  • 网站权限怎么设置遵义市建设局网站官网