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

峨眉网站建设代运营电商公司

峨眉网站建设,代运营电商公司,15年做啥网站能致富,做电影网站怎么挣钱以下内容源于C语言中文网的学习与整理,如有侵权,请告知删除。 一、退出状态 (1)不管是 Bash 内置命令,还是外部的 Linux 命令,还是自定义的 Shell 函数,当它运行结束或者退出时,都…

以下内容源于C语言中文网的学习与整理,如有侵权,请告知删除。

一、退出状态

(1)不管是 Bash 内置命令,还是外部的 Linux 命令,还是自定义的 Shell 函数,当它运行结束或者退出时,都会返回一个比较小的整数值给调用它的程序,这个整数值就表示命令的退出状态。

很多 Linux 命令其实就是一个C语言程序,熟悉C语言的读者都知道,main() 函数的最后都有一个return 0,如果程序想在中间退出,还可以使用exit 0,这其实就是C语言程序的退出状态。当有其它程序调用这个程序时,就可以捕获这个退出状态。

(2)在 Shell 中,有多种方式取得命令的退出状态,其中 $?是最常见的一种。

xjh@ubuntu:~/iot/tmp$ cat test.sh 
#!/bin/bashread a
read b(( $a == $b ));echo "退出状态:"$?
xjh@ubuntu:~/iot/tmp$ ./test.sh 
33
33
退出状态:0
xjh@ubuntu:~/iot/tmp$ ./test.sh 
23
45
退出状态:1
xjh@ubuntu:~/iot/tmp$

(3)if 语句的判断条件,从本质上讲,判断的就是命令的退出状态。注意,Shell中退出状态为 0 表示“成功”、“真”,即程序执行完成并且没有遇到任何问题,除 0 以外的其它任何退出状态都为“失败”、“假”。注意,这正好与C语言的规定相反,在C语言中,0 表示“假”,其它值表示“真”。

如果shell中一个命令(比如判断大小)成立,则其返回值为0,而shell中的if也是命令返回值为0时才成立,这样一来,我们就可以只根据命令(比如大小关系)是否正确来判断if是否执行了,所谓“负负得正”,不用再绕弯子先去判断命令的返回值,然后再根据if只在返回值为0时才成立。比如下面代码中,直接看 $a是否等于$b即可。

xjh@ubuntu:~/iot/tmp$ cat test.sh 
#!/bin/bashread a
read bif (( $a == $b ))  # a=33,b=33时,由上面可知(( $a == $b ))退出的状态为0(表示成功、真) # 此时if根据退出的状态为真,then后面的内容得以执行# 或者直接看 $a是否等于$b即可。
thenecho "a和b相等"
fi
xjh@ubuntu:~/iot/tmp$ ./test.sh 
33
33
a和b相等
xjh@ubuntu:~/iot/tmp$

二、退出状态和逻辑运算符的组合 

(1)在if语句中,我们可以使用逻辑运算符将多个退出状态组合起来,一次判断多个条件。

Shell 逻辑运算符
运算符使用格式说明
&&if expression1 && expression2逻辑与运算符,当 expression1 和 expression2 同时成立时,整个表达式才成立。

如果检测到 expression1 的退出状态为1(表示失败),就不会再检测 expression2 了,因为不管 expression2 的退出状态是什么,整个表达式必然都是不成立的,检测了也是多此一举。
||if expression1 || expression2逻辑或运算符,expression1 和 expression2 两个表达式中只要有一个成立,整个表达式就成立。

如果检测到 expression1 的退出状态为 0(表示成功),就不会再检测 expression2 了,因为不管 expression2 的退出状态是什么,整个表达式必然都是成立的,检测了也是多此一举。
!if !expression逻辑非运算符,相当于“取反”的效果。如果 expression 成立,那么整个表达式就不成立;如果 expression 不成立,那么整个表达式就成立。

(2)举例:将用户输入的 URL 写入到文件中。下面代码中,test 是 Shell 内置命令,可以对文件或者字符串进行检测,其中,-w选项用来检测文件是否存在并且可写,-n选项用来检测字符串是否非空。>表示重定向,默认情况下,echo 向控制台输出,这里我们将输出结果重定向到文件。

xjh@ubuntu:~/iot/tmp$ cat test.sh 
#!/bin/bashread filename
read urlif test -w $filename && test -n $url
thenecho $url > $filenameecho "写入成功"
elseecho "写入失败"
fi
xjh@ubuntu:~/iot/tmp$ ./test.sh 
test.txt
http://www.baidu.com.cn
写入失败
xjh@ubuntu:~/iot/tmp$ touch test.txt
xjh@ubuntu:~/iot/tmp$ ls
test1.sh  test2.sh  test.sh  test.txt
xjh@ubuntu:~/iot/tmp$ ./test.sh 
test.txt
http://www.baidu.com.cn
写入成功
xjh@ubuntu:~/iot/tmp$
xjh@ubuntu:~/iot/tmp$ test -w test.txt
xjh@ubuntu:~/iot/tmp$ echo $?
0
xjh@ubuntu:~/iot/tmp$ test -w test.c
xjh@ubuntu:~/iot/tmp$ echo $?
1
xjh@ubuntu:~/iot/tmp$
http://www.yidumall.com/news/89982.html

相关文章:

  • 江西网站开发联系方式seo网站有优化培训吗
  • 网站备案个人信息泄露创量广告投放平台
  • 做网站的公司主要做shm重庆seo网站收录优化
  • 做纸棋的网站seo网站排名优化软件
  • 自己公司内网网站和外网怎么做同步谷歌seo网站运营
  • 广州我网站制作百度推广一个点击多少钱
  • 做新闻网站用香港阿里云服务器短视频营销成功的案例
  • 备案的域名拿来做别的网站企业中层管理人员培训课程
  • 做外贸如何选择网站推广神器
  • 网站建设公司转型各国足球世界排名
  • 服务器部署wordpress免费seo关键词优化服务
  • 常州网站制作哪家好怎么建网站免费的
  • 做网站的学什么代码b2b平台营销
  • 服务器哪些端口可以做网站seo外包公司是啥
  • 长春市城乡建设局网站深圳推广平台深圳网络推广
  • 供应链公司是什么行业西安seo按天收费
  • 网站建设合同 域名网站设计制作在哪里找
  • phpcms做网站感想百度权重5的网站能卖多少钱
  • 外贸做零售的网站微信推广引流方法
  • 罗湖网站建设公司阿里云域名注册官网网址
  • WordPress图片变模糊化工网站关键词优化
  • 哪个网站做课件能赚钱自媒体是什么
  • 搜索引擎搜不到网站专业软文代写
  • 用dw制作网站模板视频推广一条多少钱
  • python做项目的网站百度商业账号登录
  • 珠海住房和建设局网站如何让关键词排名靠前
  • 专业手机网站怎么做中国新闻网最新消息
  • 电脑端网站一般做多宽最好新冠疫情最新消息
  • 做视频网站资源采集想要网站推广版
  • 想做网站怎么跟做网站的公司谈判百度服务商