`

shell命令执行的相应顺序

阅读更多
shell命令执行的相应顺序
&&
命令1 && 命令2     如果这个命令1执行成功&&那么执行这个命2

mv myfile myfile2 && echo "if you are seeing this then mv was success!"

||
如果||左边的命令(命令1)未执行成功,那么就执行||右边的命令(命令2)

mv myfile myfile2 && echo "if you are seeing this then mv was success! "

从一个审计文件中抽取第1个和第2个域,并将其输出到一个临时文件中,如果这一操作未成功,我希望能够收到一个相应邮件:

awk '{print$1,$2}' test3 >test2 || echo "sorry the extraction didn't work " | mail root

(命令1;命令2;. . .)
如果使用{ }来代替(),那么相应的命令将在子shell而不是当前shell中作为一个整体被执行,只有在{ }中所有命令的输出作为一个整体被重定向时,其中的命令才被放到子shell中执行,否则在当前shell执行。

例子:

如果sort命令执行成功了,可以先将输出文件备份,然后再打印

test.sorted && (cp test.sorted test.sorted_bak ;lp test.sorted)



经常使用的正则表达式举例
^                                 行首

$                                 行尾

^ [ t h e ]                      以t h e开头行

[ S s ] i g n a [ l L ]              匹配单词s i g n a l、s i g n a L、S i g n a l、S i g n a L

[Ss]igna[lL]".                同上,但加一句点

[ m a y M A Y ]             包含m a y大写或小写字母的行

^ U S E R $                  只包含U S E R的行

[tty]$                           以t t y结尾的行

" .                                带句点的行

^ d . . x . . x . . x          对用户、用户组及其他用户组成员有可执行权限的目录

^ [ ^ l ]                        排除关联目录的目录列表

^[^d]                ls –l | grep ^[^d] 只显示非文件夹的文件         

[ . * 0 ]                       0之前或之后加任意字符

[ 0 0 0 * ]                  0 0 0或更多个

[ iI]                             大写或小写I

[ i I ] [ n N ]                大写或小写i或n

[ ^ $ ]                         空行

[ ^ . * $ ]                     匹配行中任意字符串

^ . . . . . . $                  包括6个字符的行

[a- zA-Z]                     任意单字符

[ a - z ] [ a - z ] *         至少一个小写字母

[ ^ 0 - 9 " $ ]                非数字或美元标识

[ ^ 0 - 0 A - Z a - z ]     非数字或字母

[ 1 2 3 ]                       1到3中一个数字

[ D d ] e v i c e            单词d e v i c e或D e v i c e

D e . . c e                    前两个字母为D e,后跟两个任意字符,最后为c e

" ^ q                            以^ q开始行

^ . $                            仅有一个字符的行

^".[0-9][0-9]                以一个句点和两个数字开始的行

' " D e v i c e " '            单词d e v i c e

D e [ V v ] i c e " .               单词D e v i c e或d e v i c e

[ 0 - 9 ] " { 2 " } - [ 0 - 9 ] " { 2 " } - [ 0 - 9 ] " { 4 " }      对日期格式d d - m m - y y y y

[ 0 - 9 ] " { 3 " } " . [ 0 - 9 ] " { 3 " } " . [ 0 - 9 ] " { 3 " } " . [ 0 - 9 ] " { 3 " } I P地址格式

[ ^ . * $ ]                     匹配任意行

[A-Za-z]*            匹配所有单词


常用的grep选项
-c 只输出匹配行的计数。

-i 不区分大小写(只适用于单字符)。

-h 查询多文件时不显示文件名。

-l 查询多文件时只输出包含匹配字符的文件名。

-n 显示匹配行及行号。

-s 不显示不存在或无匹配文本的错误信息。

-v 显示不包含匹配文本的所有行。

例子

grep -v "Sort" tab2     显示不包含匹配文本的所有行

grep -n "Sort" tab2     显示匹配行及行号

grep -c "Sort" tab2     只输出匹配行的计数

精确匹配: grep "01">" tab2

grep -in "code" tab2    忽略大小写

多次过滤

grep -in "code" tab2 | grep "02"

使用grep匹配“与”或者“或”模式

grep命令加- E参数,这一扩展允许使用扩展模式匹配。例如,要抽取城市代码为219或216,方法如下:

grep –E '219|216' tab2

g r e p允许使用国际字符模式匹配或匹配模式的类名形式。
类                        等价的正则表达式

[ [ : u p p e r : ] ]       [ A - Z ]

[ [ : a l n u m : ] ]          [ 0 - 9 a - zA-Z]

[ [ : l o w e r : ] ]        [ a - z ]

[ [ : s p a c e : ] ]         空格或t a b键

[ [ : d i g i t : ] ]         [ 0 - 9 ]

[ [ : a l p h a : ] ]       [ a - z A - Z ]

大多数系统管理员称 / d e v / n u l l为比特池, 可以将之看成一个无底洞,有进没有出,永远也不会填满。

要查看D N S服务器是否正在运行(通常称为n a m e d),方法如下

ps -ef | grep "name"|grep -v "grep"

egrep
egrep接受所有的正则表达式,一个显著特性是可以以一个文件作为保存的字符串,然后将之传给egrep作为参数,为此使用- f开关。

   egrep -f par2 tab2    par2是文件,里面包括各种匹配的具体格式



如果要查询存储代码3 2 L或2 C C,可以使用(|)符号,意即“|”符号两边之一或全部。

egrep '(Code|Sort)' tab2
分享到:
评论

相关推荐

    linux下批量执行oracle脚本的shell脚本

    3. **SQL脚本执行**:在`sqlplus`命令后,使用`@`符号跟上SQL脚本的路径,例如`@createTable.sql`,来执行脚本。 4. **错误处理**:通过`if`语句检查SQL脚本的执行结果,捕获可能的错误信息。 5. **日志记录**:为了...

    Shell 命令执行顺序分析[图]

    ### Shell命令执行顺序详解 #### 引言 在日常的系统管理和软件开发工作中,Shell脚本作为一种强大的自动化工具,被广泛地应用于各种场景之中。掌握Shell命令的执行流程及其内部机制,不仅能够帮助我们更高效地编写...

    shell命令解析器

    shell提供了一个交互式的环境,用户可以输入命令,如`ls`、`cd`、`echo`等,然后由shell解析这些命令并执行相应的系统调用。其中,"历史"功能允许用户通过上下箭头键访问先前输入的命令,"管道"(`|`)用于连接多个...

    实验七 shell编程

    用户输入的数字或名称需要被解析,然后根据输入执行相应的命令。实现这个菜单可以使用`case`语句或者`if-else`结构。例如,当用户输入“1”时,脚本应执行`clear`清屏命令,然后退出;输入“2”则跳转到另一个本地...

    Shell及其编程.docx

    首先,Shell作为命令解释程序,它的主要任务是接收用户在终端输入的命令,解析这些命令并执行相应的操作。当用户编写Shell脚本时,Shell则会解释执行这些脚本中的语句,完成更复杂的任务流程。Shell脚本的执行过程与...

    Shell脚本调试技术

    - `trap`命令允许脚本捕捉特定信号,并执行相应的处理程序。这对于错误处理和清理工作尤为重要。 - 通过设置`trap`,可以在脚本退出或遇到错误时执行特定命令,比如记录错误信息、清除临时文件等。 **示例:** ```...

    linux实验七 shell编程

    - 根据用户输入执行相应的命令。 - **脚本实现**示例代码: ```bash #!/bin/bash # 定义菜单函数 function menu() { clear echo "Number\tName\tFor Linux Menu" echo "1\text\tleave menu or return" echo...

    交互式shell和非交互式shell的区别.doc

    - **登录Shell通常为交互式**:登录Shell通常是一种交互式Shell,用户登录系统后,Shell会读取配置文件并执行相应设置。 #### 三、非交互式Shell 非交互式Shell与交互式Shell相反,它不会等待用户输入,而是读取...

    Linux系统的shell简介

    shell 脚本的执行过程与直接在命令行输入命令类似,只是脚本中的命令按顺序逐行执行。 在 Linux 中,shell 提供了丰富的内置命令,例如 `cd` 用于切换当前工作目录,`echo` 用于打印文本到标准输出,`export` 用于...

    oraclep安装shell脚本

    Shell脚本是Linux系统中的一种批处理程序,它由一系列的命令组成,这些命令可以按照特定顺序执行,从而实现自动化任务。在`oraclep安装shell脚本`中,可能包含了如下步骤: 1. **环境准备**:检查系统版本、硬件...

    Shell 管道及执行顺序分析

    ### Shell管道及执行顺序分析 #### 一、基本概念 Shell环境下的I/O重定向以及管道操作是Linux/Unix系统中极为重要的组成部分。通过这些机制,用户能够灵活地控制程序的输入输出流程,从而实现复杂的功能组合。 1....

    unix linux shell命令教程

    在IT领域,Unix和Linux操作系统是两种广泛使用的命令行接口操作系统。它们的shell提供了一种交互式的环境...提供的PDF文件可能包含了上述内容的详细解释和实例,建议按顺序阅读以逐步掌握Unix/Linux Shell命令的使用。

    交互式shell和非交互式shell、登录shell和非登录shell的区别 1

    在Linux系统中,shell是用户与操作系统之间交互的接口,主要负责解析用户的命令并执行相应的操作。shell有多种类型,但最常见的是Bash(Bourne Again SHell)。这里我们将详细探讨交互式shell和非交互式shell以及...

    express-shell-example:用于通过REST接口执行Shell脚本的示例服务器

    在这个项目中,服务器将通过REST接口接收客户端的请求,然后执行相应的Shell脚本。 2. **Shell脚本**:Shell是Unix或Linux操作系统中的一个命令解释器,它允许用户通过命令行界面执行系统操作。Shell脚本是用Shell...

    solaris 如何添加启动时自动执行脚本

    1. **创建脚本文件:** 首先,你需要编写一个Shell脚本文件,该脚本应包含需要在系统启动时执行的所有命令。例如,如果你希望启动一个特定的服务,可以在脚本中调用相应的命令或工具。 ```bash #!/bin/sh ### ...

    Linux14_Shell实例:运行级别脚本

    使用`case`语句处理传入脚本的参数,如`start`, `stop`, `restart`或`reload`,调用相应的函数执行操作。 4. **运行状态检测**: 创建一个运行标记文件可以用来检查服务是否正在运行,这对于实现`restart`或`...

    linux shell解析程序源码

    当用户输入未带完整路径的命令时,Shell会按照`PATH`变量设定的顺序查找可执行文件。 3. **内置命令**:`ls`和`cd`是常见的内置命令,它们由Shell直接执行,无需启动新的进程。对于这类命令,源代码中会有相应的...

Global site tag (gtag.js) - Google Analytics