&&、()、||决定linux命令的执行顺序
在执行某个命令时,有时需要依赖前面的命令是否执行成功。假如你想通过ssh命令复制很多数据文件到另外的机器后,删除所有源有文件,所以在删除源有文件之前首先要确定复制是不是执行成功。只要执行复制成功才可以删除,否则后果......
一、&&
1.格式
command1 && command2
2.含义
&&左边的command1执行成功(返回0表示成功)后,&&右边的command2才能被执行。
3.实例
(1)当把文件sql.txt复制一份为sql.bak.txt成功,然后显示副本sql.bak.txt
[root@RHEL5 shell]# cp sql.txt sql.bak.txt && cat sql.bak.txt
Database Size(MB) Date Created
GOSOUTH 2244 12/11/97
TRISUD 5632 8/9/99
(2 rows affected)
(2)当文件facebook.txt经过排序并保存在facebook.txt.sorted被执行成功,打印facebook.txt.sorted 文件
sort facebook.txt > facebook.txt.sorted && lp facebook.txt.sorted
二、||
1.格式
command1 || command2
2.含义
如果||左边的command1执行失败(返回1表示失败),就执行&&右边的command2。
3.实例
(1)打印1111.txt的第一列内容,若执行不成功则执行显示facebook.txt的内容
[root@RHEL5 shell]# awk '{print $1}' 1111.txt || cat facebook.txt
awk: cmd. line:1: fatal: cannot open file `1111.txt' for reading (No such file or directory)
google 110 5000
baidu 100 5000
guge 50 3000
sohu 100 4500
(2)当打印1111.txt的第一列内容得命令被成功执行,则不执行打印facebook.txt的命令
[root@RHEL5 shell]# awk '{print $1}' facebook.txt || cat facebook.txt
google
baidu
guge
sohu
三、()
如果想执行几个命令,则需要用命令分隔符分号隔开每个命令,并使用圆括号()把所有命令组合起来。
结合||和&&可以实现复杂的功能。
1.格式(command1;command2;command3;...)
2.实例
(1)使用多个命令,如果sort命令执行成功,先将排序后的文件备份到/root/backup/目录下,然后再打印
sort facebook.txt > facebook.txt.sorted && (cp facebook.txt.sorted /root/backup/facebook.txt.sorted;lp facebook.txt.sorted)
(2)打印facebook.txt文件失败就发邮件告知root用户,并关机
lp facebook.txt.sorted ||(echo "It was not submitted succuessfully" | mail root;init 0)
转载自:http://www.51testing.com/html/65/364865-222881.html
&&、()、||决定linux命令的执行顺序的更多相关文章
- pv命令监控Linux命令的执行进度
pv命令监控Linux命令的执行进度 http://www.techweb.com.cn/network/system/2015-12-14/2241124.shtml yum install -y ...
- SHELL脚本--多命令逻辑执行顺序
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html Linux中可以使用分号“;”.双and号“&& ...
- LINUX 命令定期执行可执行文件
linux命令将nodejs文件变成可执行文件 在linux中一般我们在运行node文件时用的命令为: node example.js 首先.删除文件后缀,在linux命令下添加可执行权限 mv ex ...
- Shell命令的执行顺序
shell执行命令的步骤顺序如上图,看起来有些复杂. 当命令行被处理时,每一个步骤都是在Shell的内存里发生的;Shell不会真的把每个步骤的发生显示给你看. 所以,你可以假想这事我们偷窥Shell ...
- 在Linux命令行执行python命令
在Linux的命令行执行python的某些命令: [root@centos7 ~]# echo "import sys ;print(sys.path)"|python3.6 [' ...
- 使用 pv 命令监控 linux 命令的执行进度
如果你是一个 linux 系统管理员,那么毫无疑问你必须花费大量的工作时间在命令行上:安装和卸载软件,监视系统状态,复制.移动.删除文件,查错,等等.很多时候都是你输入一个命令,然后等待很长时间直到执 ...
- linux命令 环境设置 顺序
转 http://blog.csdn.net/dingxy/article/details/4016383 在登录Linux时要执行文件的过程如下: 在刚登录Linux时,首先启动 /etc/prof ...
- 登录linux时 shell执行顺序
# .bash_history,.bash_logout,.bash_profile,.bashrc/etc/profile 全局.bash_history 记录当前登录用户历史操作的命令.bash_ ...
- linux命令行执行db2存储过程
存储过程代码如下: CREATE PROCEDURE proc_sum2(IN n INT,OUT sum INT,OUT j INT) BEGIN DECLARE i INT; ; ; ; WHIL ...
随机推荐
- 解决微信小程序textarea 里输入的文字或者是placeholder里的值,飘到弹出view上
在uniapp微信小程序开发中使用textarea,结果发现输入框的问题浮动起来,view无法把他覆盖,设法设置index的值也不生效,所以只能是通过条件v-if或者v-show使其隐藏就可以了
- Python XML 解析Ⅱ
make_parser方法 以下方法创建一个新的解析器对象并返回. 参数说明: parser_list - 可选参数,解析器列表 parser方法 以下方法创建一个 SAX 解析器并解析xml文档: ...
- php回顾(3)系统函数
abs() 绝对值 ceil() 向上取整 floor() 向下取整 round() 四舍五入 第二个参数:保留小数点后面几位 ...
- noi.ac #543 商店
我们考虑可并堆维护,从深到浅贪心选取. 用priority_queue启发式合并的话,是60pts: #include<iostream> #include<cstdio> # ...
- C++入门经典-例7.3-析构函数的调用
1:析构函数的名称标识符就是在类名标识符前面加“~”.例如: ~CPerson(); 2:实例代码: (1)title.h #include <string>//title是一个类,此为构 ...
- Spring之Bean管理------注解方式
编写测试类 1,编写相关的类 public interface UserDao { public void sayHello(); } public class UserDaoImpl impleme ...
- (转载)Nginx Windows详细安装部署教程
本文转载自:https://www.cnblogs.com/taiyonghai/p/9402734.html 一.Nginx简介 Nginx (engine x) 是一个高性能的HTTP和反向代理服 ...
- 邻居子系统 之 更新neigh_update
概述 neigh_update函数用来更新指定的邻居项,更新内容是硬件地址和状态,更新之后,会根据新状态设置其输出函数,CONNECTED状态则使用快速输出,否则使用慢速输出:如果是由原来的无效状态变 ...
- CI集成Smarty的实现方式
给新伙伴的忠告:不要去想着有多复杂,看一遍绝对就会弄了! 这样集成的目的是什么? 因为我使用过CI和smarty,所以我就按自己的理解讲一下:CI框架在控制器.models方面做的很好,但在多变的视图 ...
- android data binding jetpack VI 清理一些概念。BR 运算表达式
android data binding jetpack VIII BindingConversion android data binding jetpack VII @BindingAdapter ...