`
memorymyann
  • 浏览: 266343 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

shell命令执行顺序

阅读更多

1.&&

 

在一个普通的shell中,命令执行是没有相互依赖的,比如

cat my1.txt

cat my2.txt

大家可以试试,无论上面一个命令是否正确运行,下面的指令都会运行。但有时候我们需要前一个指令没有成功执行时候,后一个指令就不要运行,这里就牵扯到&&。

[root@liumengli my_shell]# ls
1.sh  2.sh  case_shell.sh  crontab.txt  first.sh  for_shell.sh  hello  hello zhangchi  my.txt  shell_example.sh  test  until_shell.sh  while_shell.sh
[root@liumengli my_shell]# cat 1.sh && cat 2.sh
#!/bin/sh

echo "hello yuna"

exit 1
#!/bin/sh

echo "hello difa"
exit 0
[root@liumengli my_shell]# cat 3.sh && cat
cat        catchsegv 
[root@liumengli my_shell]# cat 3.sh && cat 2.sh
cat: 3.sh: 没有这个目录
从结果中可以看到cat 3.sh没有成功运行,那么cat 2.sh就不会成功运行。自己写的shell脚本也可以用&&链接起来

 

这里又牵扯到一个问题,到底怎样才算成功运行了呢。像上面那样 cat 3.sh这个是明显失败了。但如果我有2个脚本,如何才算前一个脚本成功运行了呢?关键在于 exit,如果exit 0被执行了就表示前一个成功运行, exit 1就没有成功运行,例如

[root@liumengli my_shell]# cat 1.sh
#!/bin/sh

echo "hello yuna"

exit 1
[root@liumengli my_shell]# cat 2.sh
#!/bin/sh

echo "hello difa"
exit 0
[root@liumengli my_shell]# ./1.sh && ./2.sh
hello yuna
[root@liumengli my_shell]# ./2.sh && ./1.sh
hello difa
hello yuna
[root@liumengli my_shell]#
第一个只执行了1.sh,因为它返回1,虽然从实际意义上看来,我们 1.sh成功运行了,但2.sh还是不会被运行。

 

2.||

 

和&&正好相反,当第一个指令运行失败时候,才运行第2个指令(当然也可以是脚本,和&&类似)。

 

3.()和{}

 

样例

[root@liumengli my_shell]# (./1.sh ; ./2.sh )
hello yuna
hello difa
[root@liumengli my_shell]#

这个表示这2个指令(其实是脚本)在一起运行,且都是在当前 shell中运行

如果是{}的话(语法一样,中间有;号,注意第一个要有空格,则指令不再当前 shell,而在这个shell的子shell下面运行

分享到:
评论

相关推荐

    Shell脚本中多命令逻辑执行顺序的方法详解

    ”、双and号“&&”和双竖线“||”来连接多个命令,这篇文章主要介绍了Shell脚本中多命令逻辑执行顺序的方法,本文给大家介绍的非常详细,对大家的工作或学习具有一定的参考借鉴价值,需要的朋友参考下

    linux shell命令执行顺序的控制方法

    有关linux shell命令执行顺序的控制办法,知识点很小,但却非常实用,建议朋友们看看

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

    对于每一个读取的管道,Shell都回将命令分割,为管道设置I/O,并且对每一个命令依次执行下面的操作:整个步骤顺序如上图所示,看起来有些复杂。当命令行被处理时,每一个步骤都是在Shell的内存里发生的;Shell不会真...

    一种限制shell脚本并行执行的方法

    本发明公开了一种限制shell 脚本并行执行 的方法,应用于linux 和unix 平台,包括:当有 shell 脚本需要执行时,脚本模块处理器向管道 写入请求;令牌模块处理器在管道另一端顺序读 取所述请求,当有令牌空闲时,将...

    Shell脚本中让进程休眠的方法(sleep用法)

    有时候写Shell的脚本,用于顺序执行一系列的程序。 有些程序在停止之后并没能立即退出,就例如有一个 tomcat 挂了,就算是用 kill -9 命令也还没瞬间就结束掉。 这么如果 shell 还没等其退出就接着执行下一行,这么...

    Ubuntu系统的Shell命令及脚本编程

    介绍了变量与特殊字符、通配符与正则表达式、命令的执行顺序、I/O重定向与管道;通过例子说明了Shell脚本程序的编写、执行过程;重点介绍了逻辑表达式、条件语句、循环语句。

    纯shell的自动登录执行脚本

    纯shell的自动telnet登录执行脚本 可以支持多台主机顺序telnet登录执行相关命令,支持4个参数。

    Linux shell脚本 精华中文版

    006_命令执行顺序.pdf 007_文本过滤_正则表达式.pdf 008_grep家族.pdf 009_awk介绍.pdf 010_sed用法介绍.pdf 011_合并与分割_sort_join_uniq_cut_paste_split.pdf 012_tr的用法.pdf 013_登录环境.pdf 014_...

    UNIX命令及SHELL编程

    06_Shell-命令执行顺序.PDF 07_文本过滤-正则表达式介绍.PDF 08_文本过滤-grep 家族.PDF 09_文本过滤-AWK 介绍.PDF 10_文本过滤-sed 用法介绍.PDF 11_文本过滤-合并与分割.PDF 12_文本过滤-tr 用法.PDF 13_...

    shell命令精品教程

    基础s h e l l编程 16、shell脚本介绍 17、条件测试 18、控制流结构 19、shell 函数 20、向脚本传递参数...例子 28、运行级别脚本 29、cgi 脚本 附录常用shell命令

    shell编程指南,shell脚本,本书共分五部分全。grep家族,sed,AWK,正则表达式,tr用法

    第6章 命令执行顺序 46 第二部分 文本过滤 第7章 正则表达式介绍 49 第8章 grep家族 56 第9章 AWK介绍 66 第10章 sed 用法介绍 89 第11章 合并与分割 104 第12章 tr用法 119 第三部分 登录环境 第13章 登录环境 ...

    实验七 shell编程

    3、编写一个menu 的shell脚本程序,执行后的界面为: Number Name For Linux Menu 1 exit leave menu or return 2 menu goto another local menu 3 vi deit a file 4 mail read a mail 5 ...

    shell脚本详解

    第6章_命令执行顺序; 第7章_正则表达式介绍; 第8章_grep家族; 第9章_awk介绍; 第10章_sed用法介绍; 第11章_合并与分割; 第12章_tr用法; 第13章_登录环境; 第14章_环境和shell变量; 第15章_引号; 第16章_...

    linux实验七 shell编程

    2、编写一个menu 的shell脚本程序,执行后的界面为: Number Name For Linux Menu 1 exit leave menu or return 2 menu goto another local menu 3 vi deit a file 4 mail read a mail 5 ...

    Linux函数和脚本

    1.控制Shell脚本执行顺序 1.条件测试和信号捕获 1.退出状态 2.测试状态 1.文件状态测试 2.变量状态测试 3.字符串和数值状态测试 4.逻辑操作符 3.捕获系统信号 1.系统信号说明 1.1 SIGHUP 2.2 SIGINT 3.3 SIGQUIT 4.4...

    shell编程 linux

    006命令执行顺序.pdf 007正则表达式介绍.pdf 008grep 家族.pdf 009AWK 介绍.pdf 010sed 用法介绍.pdf 011合并与分割.pdf 012tr 用法.pdf 013登录环境.pdf 014环境和shell变量.pdf 015引号.pdf 016shell...

    Shell自学pdf.zip

    第06 章命令执行顺序.PDF 第07 章正则表达式介绍.PDF 第08 章grep 家族.PDF 第09 章AWK 介绍.PDF 第10 章sed 用法介绍.PDF 第11 章合并与分割.PDF 第12 章tr 用法.PDF 第13 章登录环境.PDF 第14 章环境和shell 变量....

    Linux命令学习 shell pdf格式

    第六章 命令执行顺序 第二部分 文本过滤 第七章 正则表达式介绍 第八章 grep家族 第九章 AWK介绍 第十章 sed用法介绍 第十一章 合并与分割 第十二章 tr用法 第三部分 登录环境 第十三章 登录环境 第十四章 环境和...

Global site tag (gtag.js) - Google Analytics