shell中和||的使用方法
&&运算符:
command1 && command2
&&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;换句话说,“如果这个命令执行成功&&那么执行这个命令”。
语法格式如下:
command1 && command2 [&& command3 ...]
1 命令之间使用 && 连接,实现逻辑与的功能。
2 只有在 && 左边的命令返回真(命令返回值 $? == 0),&& 右边的命令才会被执行。
3 只要有一个命令返回假(命令返回值 $? == 1),后面的命令就不会被执行。
示例 1
malihou@ubuntu:~$ cp ~/Desktop/1.txt ~/1.txt && rm ~/Desktop/1.txt && echo "success"
示例 1 中的命令首先从 ~/Desktop 目录复制 1.txt 文件到 ~ 目录;执行成功后,使用 rm 删除源文件;如果删除成功则输出提示信息。
||运算符:
command1 || command2
||则与&&相反。如果||左边的命令(命令1)未执行成功,那么就执行||右边的命令(命令2);或者换句话说,“如果这个命令执行失败了||那么就执行这个命令。
1 命令之间使用 || 连接,实现逻辑或的功能。
2 只有在 || 左边的命令返回假(命令返回值 $? == 1),|| 右边的命令才会被执行。这和 c 语言中的逻辑或语法功能相同,即实现短路逻辑或操作。
3 只要有一个命令返回真(命令返回值 $? == 0),后面的命令就不会被执行。
示例 2
malihou@ubuntu:~$ rm ~/Desktop/1.txt || echo "fail"
在示例 2 中,如果 ~/Desktop 目录下不存在文件 1.txt,将输出提示信息。
示例 3
malihou@ubuntu:~$ rm ~/Desktop/1.txt && echo "success" || echo "fail"
在示例 3 中,如果 ~/Desktop 目录下存在文件 1.txt,将输出 success 提示信息;否则输出 fail
提示信息。
如果希望把几个命令合在一起执行, s h e l l提供了两种方法。既可以在当前s h e l l也可以在子s h e l l中执行一组命令。
()运算符:
为了在当前shell中执行一组命令,可以用命令分隔符(即",")隔开每一个命令,并把所有的命令用圆括号()括起来。
它的一般形式为:
( 命令;命令;命令… )
1 一条命令需要独占一个物理行,如果需要将多条命令放在同一行,命令之间使用命令分隔符(;)分隔。执行的效果等同于多个独立的命令单独执行的效果。
2 () 表示在当前 shell 中将多个命令作为一个整体执行。需要注意的是,使用 () 括起来的命令在执行前面都不会切换当前工作目录,也就是说命令组合都是在当前工作目录下被执行的,尽管命令中有切换目录的命令。
3 命令组合常和命令执行控制结合起来使用。
示例 4
malihou@ubuntu:~$ rm ~/Desktop/1.txt || (cd ~/Desktop/;ls -a;echo "fail")
在示例 4 中,如果目录 ~/Desktop 下不存在文件 1.txt,则执行命令组合。
{}运算符:
如果使用{}来代替(),那么相应的命令将在子shell而不是当前shell中作为一个整体被执行,只有在{}中所有命令的输出作为一个整体被重定向时,其中的命令才被放到子shell中执行,否则在当前shell执行。
它的一般形式为:
{ 命令;命令;命令… }
(注意:在使用{}时,{}与命令之间必须使用一个空格)
测试:
~$ A=1;echo $A;{ A=2; };echo $A
1
2
~$ A=1;echo $A;( A=2; );echo $A
1
1
转载于:https://blog.51cto.com/iter2012/1613705
shell中和||的使用方法相关推荐
- python自带的shell是什么-python中执行shell的两种方法总结
一.使用python内置commands模块执行shell commands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令执行的状态: ...
- Hadoop HBase概念学习系列之hbase shell中执行java方法(高手必备)(二十五)
hbase shell中执行java方法(高手必备),务必掌握! 1. 2. 3. 4. 更多命令,见scan help.在实际工作中,多用这个!!! API参考: http://hbase.apac ...
- PHP+shell实现多线程的方法
PHP+shell实现多线程的方法 这里介绍怎样借助shell脚本实现多线程. 先写个简单的php代码.这里为了让脚本运行时间更长.方便看效果,sleep一下.呵呵.先看下test.php的代码:ls ...
- msf拿到shell显示乱码解决方法以及chcp各种编码的补充
文章目录 前言 前言 msf拿到shell之后输入命令经常会有乱码,只需要一条命令就能解决. chcp 65001 chcp 65001 的意思是 :改变当前活动代码页为 UTF-8,让当前的批处理窗 ...
- linux脚本攻击,恶意shell脚本攻击的方法与预防策略
前言 网络安全对于互联网从业者而言,一直是一个重要的.绕不开的话题,PowerShell可以给运维人员带来极大的方便,但同时也是被攻击者盯上的重灾区.想想就非常可怕,攻击的人只要能从远程执行shell ...
- Shell编程-文件读取方法集锦
在这里总结一下Shell读取文件的方法 [plain] view plaincopy a), #使用read命令读取一行数据 while read myline do echo "LINE: ...
- linux nc反弹命令,详解NC反弹shell的几种方法
假如ubuntu.centos为目标服务器系统 kali为攻击者的系统,ip为:192.168.0.4,开放7777端口且没被占用 最终是将ubuntu.centos的shell反弹到kali上 正向 ...
- linux进度条脚本,linux shell进度条实现方法
linux shell进度条实现方法 直接看代码吧,很简单 复制代码 代码如下: #!/bin/bash b='' i=0 while [ $i -le 100 ] do printf " ...
- php反弹教程,详解NC反弹shell的几种方法
假如ubuntu.CentOS为目标服务器系统 kali为攻击者的系统,ip为:192.168.0.4,开放7777端口且没被占用 最终是将ubuntu.CentOS的shell反弹到kali上 正向 ...
最新文章
- node debug包
- DbgPrint/KdPrint输出格式控制
- 移动html特殊链接【打电话_发短信_发邮件】
- 放弃Python转向Go语言:我们找到了以下9大理由
- google浏览器 隐藏功能开启
- 轻松学习 Flex 布局的小游戏
- 外星人装深度linux,外星人alienware 18笔记本怎么安装win10系统
- 如何设置计算机网共享文件夹,局域网内如何设置共享文件夹呢
- centos java7安装_Centos7 JDK7安装配置
- I2C总线协议的简要说明
- WebEx 播放器下载
- IC卡(智能卡)APDU通讯总结
- matlab 判断鼠标按下_如何让MATLAB控制你的鼠标和键盘
- 湖南省中职计算机应用教资笔试+面试心得
- 打雷以后必定会下大雨
- Speedoffice (word)文档里面怎样自动生成目录
- pdfminer转换PDF为html,【记录】尝试使用pyPdf将不可复制的PDF转换为文本或HTML
- ssis+ssas+ssrs 介绍
- 连连看 算法 2013-12-29
- CentOS7下安装Hadoop伪分布式
热门文章
- android action pick,Intent中各种常见的Action
- Java在Quant应用_java – 如何绘制quantil band(在R中)
- c语言编程题餐饮服务打分,求详细分析C语言题餐饮服务质量调查打分题和答案..._质量员考试_帮考网...
- python123第k序元素查找_Python实现折半查找并用matplotlib实现动态过程可视化
- 苹果电脑安装python3密码_mac系统安装Python3初体验
- java异常类 Object类
- java 匿名类调用方法_java – 从匿名类调用新定义的方法
- 26个音序的正确写法和占格_部编语文汉语拼音音序表,示范朗读+视频教学
- 同一个类 cannot be cast to_留学热门assignment之 税收筹划类essay
- CocoaPods私有库搭建的记录