文档章节

linux 管道符号 | ,以及&& ||等等特殊符号笔记

lgh06
 lgh06
发布于 2014/06/26 14:38
字数 1157
阅读 307
收藏 0
点赞 0
评论 0

管道和重导向:“|”、“>”、“>>”、“<” 

  重导向就是使命令改变它所认定的标准输出。“>”可将结果输出到文件中,该文件原有内容会被删除,“>>”则将结果附加到文件中,原文件内容不会被删除。“<”可以改变标准输入。如:  
  cat data1.txt>>data2.txt(将data1.txt文件的内容加在data2.txt文件的后面)  
  管道“|”可将命令的结果输出给另一个命令作为输入之用:  
  man mtools|grep mbadblocks (在mtools的帮助中搜索包含“mbadblocks”的句子)  

  man mtools|less(把输出用管道导入到一个叫做 less 的工具。less 是一个分页工具,它允许你一页一页地查看信息。)



连接符号:“;” 

  当有几个命令要连续执行时,我们可以把它们放在一行内,中间用“;”分开。  
  mkdir myfile;cp /tmp/myfile.txt myfile(先建立一个目录myfile,然后把myfile.txt拷贝到新建的目录中) 


后台执行:“&” 

  用户有时候执行命令要花很长时间,可能会影响做其他事情。最好的方法是将它放在后台执行。后台运行的程序在用户注销后系统还可以继续执行。当要把命令放在后台执行时,在命令的后面加上“&”。






Linux shell的&&和||

 
shell 在执行某个命令的时候,会返回一个返回值,该返回值保存在 shell 变量 $? 中。当 $? == 0 时,表示执行成功;当 $? == 1 时,表示执行失败。 
  www.2cto.com  
有时候,下一条命令依赖前一条命令是否执行成功。如:在成功地执行一条命令之后再执行另一条命令,或者在一条命令执行失败后再执行另一条命令等。shell 提供了 && 和 || 来实现命令执行控制的功能,shell 将根据 && 或 || 前面命令的返回值来控制其后面命令的执行。 
 

&&(命令执行控制) 

 
语法格式如下: 
 
    command1 && command2 [&& command3 ...] 
 
1 命令之间使用 && 连接,实现逻辑与的功能。 
2 只有在 && 左边的命令返回真(命令返回值 $? == 0),&& 右边的命令才会被执行。 
3 只要有一个命令返回假(命令返回值 $? == 1),后面的命令就不会被执行。 
  www.2cto.com  
示例 1 
malihou @ubuntu :~$ cp ~/Desktop/1.txt ~/1.txt && rm ~/Desktop/1.txt && echo "success" 
 
示例 1 中的命令首先从 ~/Desktop 目录复制 1.txt 文件到 ~ 目录;执行成功后,使用 rm 删除源文件;如果删除成功则输出提示信息。 
 

||(命令执行控制) 

 
语法格式如下: 
 
    command1 || command2 [|| command3 ...] 
 
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 提示信息。 






 
shell 提供了两种方法(() 和 {})实现将几个命令合作一起执行,代替独立执行。这种方式并不能控制命令是否需要执行,仅是将多个单独的命令组合在一起执行,最终命令的返回值将由最后一条命令的返回值来决定。 




() (命令组合) 

 
语法格式如下:   www.2cto.com  
 
    (command1;command2[;command3...]) 
 
1 一条命令需要独占一个物理行,如果需要将多条命令放在同一行,命令之间使用命令分隔符(;)分隔。执行的效果等同于多个独立的命令单独执行的效果。 
2 () 表示在当前 shell 中将多个命令作为一个整体执行。需要注意的是,使用 () 括起来的命令在执行前面都不会切换当前工作目录,也就是说命令组合都是在当前工作目录下被执行的,尽管命令中有切换目录的命令。 
3 命令组合常和命令执行控制结合起来使用。 
 
示例 4 
malihou @ubuntu :~$ rm ~/Desktop/1.txt || (cd ~/Desktop/;ls -a;echo "fail") 
 
在示例 4 中,如果目录 ~/Desktop 下不存在文件 1.txt,则执行命令组合。
 

本文转载自:http://blog.csdn.net/recordme/article/details/22102241

共有 人打赏支持
lgh06
粉丝 2
博文 35
码字总数 7821
作品 0
深圳
程序员
Linux通配符与特殊符号知识大全汇总

内容来源《跟老男孩学习Linux运维:核心基础实战》,预计于2018年7月出版,敬请期待,QQ群385168604交流。 Linux菜鸟及新手的福音,相当于是鸟哥私房菜(太老旧了)的2018最新企业级实战升级版...

老男孩oldboy ⋅ 05/10 ⋅ 0

shell中的特殊符号和cut,sort,wc,uniq,tee,tr,split命令

一、shell中的特殊符号 你在学习linux的过程中,也许你已经接触过某个特殊符号,例如””,它是一个通配符号,代表零个或多个字符或数字。 常用到的特殊字符: 1、 代表零个或多个任意字符。 ...

BatmanLinux ⋅ 01/13 ⋅ 0

Linux CentOS 7 shell中的特殊字符及与管道相关的命令(cut,sort,wc,uniq,tee,tr,split)

一、 shell特殊符号cut命令 1.特殊符号 * :任意个任意字符? :任意单个字符# :注释 :转义字符| :管道符 2.几个和管道相关的命令 (1) cut cut 把文件分段cat /etc/passwd cut -d: -f 3 /etc...

fengyunshan911 ⋅ 2017/09/08 ⋅ 0

22.Shell特殊符号和cut,sort,wc,uniq,tee,tr,split命令

五周第五次课(1月12日) 8.10 shell特殊符号cut命令 8.11 sortwcuniq命令 8.12 teetrsplit命令 8.13 shell特殊符号下 相关测验题目:http://ask.apelearn.com/question/5437 扩展 source e...

Xavi2017 ⋅ 01/14 ⋅ 0

小蚂蚁学习Linux(完结)——Linux管道符和定义变量

多命令顺序执行 ; 分号分割每一个命令 格式: 命令1;命令2。如: ls;cd / 。 作用:多命令依次执行,命令之间没有逻辑关系。 注意:该符号不管第一个命令是否正确执行,第二个命令都会执行...

嗜学如命的小蚂蚁 ⋅ 2015/11/06 ⋅ 0

管道符和作业控制 shell变量 环境变量配置文件

8.6 管道符和作业控制 管道符的作用在于将符号前面的结果丢给符号后面的命令。管道符后面并不是所有的命令都可以,一般针对文档操作的命令比较常用,eg:cat、less、head、tail、grep、cut、...

神游818 ⋅ 01/12 ⋅ 0

Linux学习笔记(25)

一、shell特殊符号 * 任意个任意字符 ? 任意一个字符 # 注释字符 脱义字符 例如: [root@localhost ~]# a=2 [root@localhost ~]# b=3 [root@localhost ~]# c=$a$b [root@localhost ~]# ech...

小新锐 ⋅ 2017/11/17 ⋅ 0

JavaWeb23-HTML篇笔记(二)

1.1 Vi和Vim编辑器1.1.1 Vim编辑器: 在Linux下一般使用vi编辑器来编辑文件。vi既可以查看文件也可以编辑文件。三种模式:命令行、插入、底行模式。 切换到命令行模式:按Esc键; 切换到插入...

我是小谷粒 ⋅ 06/11 ⋅ 0

Linux中find命令的使用详解(中)

在上一篇中,我已经将find命令的基本使用方式做了一个详细的介绍,现在我们接着来介绍更多的find命令使用场景。 (五)按照文件名进行查找 -name pattern:文件名为pattern的文件。注意如果p...

1435727985857426 ⋅ 01/24 ⋅ 0

Linux 命令 - find

有段时间的笔记了,发出来与大家分享 基本 find 【搜索位置】 【参数】 匹配任意内容 ? 匹配任意一个字符 [] 匹配任意一个中括号内的字符 如果提示 ,那就要将表达式用引号包含起来,例如 -1...

ypingcn ⋅ 03/01 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

005. 深入JVM学习—Java堆内存参数调整

1. JVM整体内存调整图解(调优关键) 实际上每一块子内存区域都会存在一部分可变伸缩区域,其基本流程:如果内存空间不足,则在可变的范围之内扩大内存空间,当一段时间之后,内存空间不紧张...

影狼 ⋅ 29分钟前 ⋅ 0

内存障碍: 软件黑客的硬件视图

此文为笔者近日有幸看到的一则关于计算机底层内存障碍的学术论文,并翻译(机译)而来[自认为翻译的还行],若读者想要英文原版的论文话,给我留言,我发给你。 内存障碍: 软件黑客的硬件视图...

Romane ⋅ 今天 ⋅ 0

SpringCloud 微服务 (七) 服务通信 Feign

壹 继续第(六)篇RestTemplate篇 做到现在,本机上已经有注册中心: eureka, 服务:client、order、product 继续在order中实现通信向product服务,使用Feign方式 下面记录学习和遇到的问题 贰 or...

___大侠 ⋅ 今天 ⋅ 0

gitee、github上issue标签方案

目录 [TOC] issue生命周期 st=>start: 开始e=>end: 结束op0=>operation: 新建issueop1=>operation: 评审issueop2=>operation: 任务负责人执行任务cond1=>condition: 是否通过?op3=>o......

lovewinner ⋅ 今天 ⋅ 0

浅谈mysql的索引设计原则以及常见索引的区别

索引定义:是一个单独的,存储在磁盘上的数据库结构,其包含着对数据表里所有记录的引用指针. 数据库索引的设计原则: 为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索...

屌丝男神 ⋅ 今天 ⋅ 0

String,StringBuilder,StringBuffer三者的区别

这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。 首先说运行速度,或者说是, 1.执行速度 在这方面运行速度快慢为:StringBuilder(线程不安全,可变) > StringBuffer...

时刻在奔跑 ⋅ 今天 ⋅ 0

java以太坊开发 - web3j使用钱包进行转账

首先载入钱包,然后利用账户凭证操作受控交易Transfer进行转账: Web3j web3 = Web3j.build(new HttpService()); // defaults to http://localhost:8545/Credentials credentials = Wallet......

以太坊教程 ⋅ 今天 ⋅ 0

Oracle全文检索配置与实践

Oracle全文检索配置与实践

微小宝 ⋅ 今天 ⋅ 0

mysql的分区和分表

1,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同一...

梦梦阁 ⋅ 今天 ⋅ 0

exception.ZuulException: Forwarding error

错误日志 com.netflix.zuul.exception.ZuulException: Forwarding error Caused by: com.netflix.hystrix.exception.HystrixRuntimeException: xxx timed-out and no fallback available. Ca......

jack_peng ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部