技术标签: Shell 返回值 Shell 编程 Shell 指令执行结果 Shell 获取返回状态
在实际的使用过程中,经常会遇到使用脚本执行一些需要人工繁琐执行的操作,比如自动编译程序等。那么在自动化脚本中,就需要注意每条指令是否正确执行?如果不正确执行如何中断执行并且提示给用户呢?
cmake . || exit 1
make || exit 1
./pcl_visualizer_demo
则遇到CMake 或者 Make失败的时候,程序就可以直接中断。
总结:
优点:书写简单,代码少
确定:程序直接中断,不方便提示log
运算符 | 使用格式 | 说明 |
---|---|---|
&& |
expression1 && expression2 |
逻辑与运算符,当 expression1 和 expression2 同时成立时,整个表达式才成立。如果检测到 expression1 的退出状态为 0,就不会再检测 expression2 了,因为不管 expression2 的退出状态是什么,整个表达式必然都是不成立的,检测了也是多此一举。 |
|| |
expression1 || expression2 |
逻辑或运算符,expression1 和 expression2 两个表达式中只要有一个成立,整个表达式就成立。如果检测到 expression1 的退出状态为 1,就不会再检测 expression2 了,因为不管 expression2 的退出状态是什么,整个表达式必然都是成立的,检测了也是多此一举。 |
! |
! expression1 |
逻辑非运算符,相当于“取反”的效果。如果 expression 成立,那么整个表达式就不成立;如果 expression 不成立,那么整个表达式就成立。 |
cmake .
make
if [ $? -ne 0 ];then
echo " make -- Faile : "$?
exit 0
else
echo " make -- Success !"
fi
./pcl_visualizer_demo
$?
获取上一个指令(方法)的退出状态(返回值)
#!/bin/bash
#得到两个数相加的和
function add(){
return `expr $1 + $2`
}
add 23 50 #调用函数
echo $? #获取函数返回值
结果:73
总结
优点:可以用户编辑log输出,以便定位查看
确定:需要额外的代码编写
宝塔面板(免费版 5.9.1),开启面板SSL后,浏览器显示不安全的链接。我们将其修改为网站绑定的域名证书即可,方法如下:预备:域名网站已有证书,并设置SSL。网站证书在 /www/server/panel/vhost/ssl/域名 目录下。一、面板设置,启动“面板SSL”面板SSL证书生成并放置在 /www/server/panel/ssl 下二、找到虚拟主机配置文件(a...
注册功能测试:首先要分析需求,web端/APP端?账号的规则?1、账号为手机号:利用等价类边界值划分有效等价类和无效等价类;如图所示:功能测试用例:(1)输入已注册过的手机号获取验证码再次注册;(2)输入不符合手机号规则的号码获取验证码进行注册;(3)输入欠费的手机号获取验证码进行注册;(4)输入10位数字获取验证码进行注册;(5)输入12位数字获取验证码进行注册;(6)输入1...
1、项目环境<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.2.RELEASE</version> <relativePath /></parent>2、easypoi导包注意了,从这里开始坑就来了
创建表空间的语法如下: CREATE TABLESPACE tablespace [DATAFILE clause] 存储路径 [MINIMUM EXTENT integer[K|M]] [BLOCKSIZE integer [K]] [LOGGING|NOLOGGING] [DEFAULT STORAGE clause ]
官方文档:https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html#spring-webflux推荐博客:https://blog.csdn.net/get_set/article/details/79466657
数据访问是在开发信息系统中最常用的,相应的开源项目和组件也很多,小到SqlHelper大到各种ORM框架。SqlHelper灵活但是总觉的期功能不够用,ORM框架虽然提供了各种功能但很多功能却用不上。鉴于此,本人特地结合实际工作情况开发了一个数据访问组件。该组件的特性如下:1.支持把SQL写到配置文件中。这样就不会因为SQL语句的变动而重新编译项目了,并且也不依赖于存储过程;2.支持...
Centos7 安装nginx反向代理mysql1、首先机器上要安装好nginx,能访问到如下阶段2、我的nginx和mysql服务器地址分别为192.168.124.31和192.168.124.32以下为具体配置1.stream模块安装nginx默认安装的时候无法加载流stream模块,需要在启动参数里加上–with-stream。解决方法:重新对源文件进行编译、安装,通过添加–with-stream参数指定安装stream模块。[[email protected] nginx-1.12.2
在使用matlab进行建模或者数据分析时,有时候需要在画多张图,或者在一张图中画几个坐标系,而每一个坐标系中的图形需要多次完成,当然最简单的方法是单独准备好每一个坐标系的数据,再逐一画每一个坐标系的图,就不存在坐标系切换的问题。但有时候不可避免切换坐标系,比如图形时实时更新的,上面的思路就不可行。再比如我们在设计的过程中,新的灵感到来,需要在原来的基础上再加一个坐标系,这时候可以在原来的基础上...
语法:访问修饰符 构造方法名(){//初始化代码}1.无返回值类型2.方法名与类名相同作用:对象初始化系统提供默认无参构造方法但是如果自定义了 带参构造方法,系统不再提供默认无餐构造方法,想用 必须显示声明public this 指代this调用构造方法必须在第一行this 可以调用...
学习HTML,表单是一个很重要的知识,而表单最常用的可能就是表单的验证了;下面我介绍验证邮箱的一种方法。
本节我们来学习STM32最基础的定时器应用,并利用hal库生成的代码,添加用户自己的功能到回调函数中。程序实现的功能是:以10ms的定时器中断为周期,循环检测一个按键的状态,如果按下,则点亮LED灯;没有按下则熄灭LED灯。1)cubemx生成代码首先还是在cubemx中生成代码,选择器件、设置SYS(调试接口)、设置RCC(外部晶振时钟源)这几个步骤和前一节一样。然后设置用户IO口,我们需要一个引脚输出驱动LED灯,一个引脚输入作为按键。这里我们的硬件上LED仍然使用开发板上的PC13
通过例子的讲解,通过不断的解耦来引入Spring