shell 执行顺序

  shell script 到今天,我还只能一个劲顺序执行,尝试探索下其更加强大的功能。

  一个主文件 main ,三个调用文件 shell1、shell2、shell3,调用文件差别仅仅在于显示内容不同。(main中不使用后台执行(&),那么显示的内容是调用早的执行结束后,再依次完成。)脚本如下:

[[email protected] lab-shell-script]$ cat main
#!/bin/bash

. shell1 &
. shell2 &
. shell3 &

echo "Shell script ends."
[[email protected] lab-shell-script]$ cat shell1
#!/bin/bash

for((i=0; i<3; i++)); do
    echo "$i, Hello file."
    sleep 1
done

  看看执行后的结果,……。(主文件执行结束后,才开始显示调用文件的内容。且,调用文件的执行顺序呈“无序”)

[[email protected] lab-shell-script]$ ./main
Shell script ends.
1, hello mtf
[[email protected] lab-shell-script]$ 1, Hello yangtao
1, hello sunny
2, hello sunny
2, hello mtf
2, Hello yangtao
3, hello sunny
3, Hello yangtao
3, hello mtf
时间: 2024-11-05 23:27:53

shell 执行顺序的相关文章

shell学习三十八天----执行顺序和eval

执行顺序和eval shell从标准输入或脚本中读取的每一行称为管道,它包含了一个或多个命令,这些命令被一个或多个管道字符(|)隔开. 事实上嗨哟很多特殊符号可用来分割单个的命令:分号(;),管道(|),&,逻辑AND(&&),逻辑OR(||).对于每一个地区的管道,shell都会将命令分割,为管道设置I/O,并且对每一个命令依次执行下面的操作. 看起来很复杂,但是每一个步骤都是在shell的内存里发生的,shell不会真的把每个步骤的发生演示给我们看.所以这是我们分析shell内

Linux命令执行顺序— ||和&amp;&amp;和; 比较

Linux命令执行顺序— ||和&&和; command1 && command2: &&左边的command1执行成功(返回0表示成功)后,&&右边的command2才能被执行. command1 || command2: 如果||左边的command1执行失败(返回1表示失败),就执行&&右边的command2. command1;command2: 命令顺序执行 //第一个命令执行不成功,第二个命令才执行 [[email

linux命令类型及执行顺序

linux命令类型及执行顺序 一.命令分类 linux命令分为两类,具体为内部命令和外部命令 内部命令: 指shell内部集成的命令,此类命令无需人为安装,开机后自动运行在内存中,命令help查看所有内部命令的详情,如cd.type.echo.time.true等. 外部命令: 指通过外部介质安装的命令工具包,如通过yum.rpm等方式安装,具体安装路径在$PATH下. 命令查看: type查看命令分类,内部命令显示 shell相关信息,外部命令则显示$PATH路径,如下图: time属于内部命

CentOS6 /etc/profile ~/.bash_profile ~/.bashrc等文件的执行顺序

交互式登陆shell的执行顺序:/etc/profile -> ~/.bash_profile -> ~/.bashrc -> /etc/bashrc ->  ~/.bash_logout (退出时执行) 交互式非登陆shell的执行顺序:~/.bashrc -> /etc/bashrc 在非交互模式下,bash读取的startup文件由环境变量BASH_ENV来决定 参考:http://yujia2016.blog.51cto.com/59379/1775070 http:

【总结】/etc/rc.d/rc.local 与 /etc/profile .bash_profile .bashrc 文件执行顺序

登陆shell与交互式非登陆shell的区别 登录shell 所谓登录shell,指的是当用户登录系统时所取的那个 shell.登录shell属于交互式shell. 登录shell将查找4个不同的启动文件来处理其中的命令. bash shell处理文件的顺序如下: /etc/profile /etc/profile.d等待配置文件 $HOME/.bash_profile $HOME/.bash_login $HOME/.profile /etc/profile是bash shell在系统上的主默

iOS程序执行顺序和UIViewController 的生命周期(整理)

说明:此文是自己的总结笔记,主要参考: iOS程序的启动执行顺序 AppDelegate 及 UIViewController 的生命周期 UIView的生命周期 言叶之庭.jpeg 一. iOS程序的启动执行顺序 程序启动顺序图 iOS启动原理图.png 具体执行流程 程序入口进入main函数,设置AppDelegate称为函数的代理 程序完成加载[AppDelegate application:didFinishLaunchingWithOptions:] 创建window窗口 程序被激活[

修饰符-包-内部类-代码块执行顺序

1.访问权限修饰符     从大到小的顺序为:public--protected--default--private     private--只能在同一类中使用;     default--不用写出来,默认不加.可以被同一包中的类使用     protected--可以被不同包的子类使用     public--可以被不同包的其它类使用 2.各种修饰符的修饰对象(可修饰哪些:类/接口/方法/属性)(多个修饰符连用是可以没有顺序的!)     1)访问权限修饰符:public/default--

NAT与ACL执行顺序解析

防火墙数据包处理流程图 ACL与NAT的顺序不是固定的,各厂商数据流先ACL或先NAT不一. 引用<浅析ACL与NAT的执行顺序>-张少芳  一文中的结论如下: H3C 出站:先匹配出站ACL,然后进行地址转换 入站:先进行地址转换,然后匹配入站ACL CISCO 出站:先进行地址转换,然后匹配出站ACL 入站:先匹配入站ACL,然后进行地址转换(即上图所示数据流顺序) 结论 H3C设备和CISCO设备在对ACL与NAT的执行顺序处理上完全相反.由于在实际的网络中可能存在来自不同厂商的设备,因

Java(静态)变量和(静态)代码块的执行顺序

本文讨论Java中(静态)变量.(静态)代码块的执行顺序 首先创建3个类: 1.Foo类,用于打印变量 public class Foo { public Foo(String word) { System.out.println(word); } } 2.Parent类 public class Parent { static Foo FOO = new Foo("Parent's static parameter"); Foo foo = new Foo("Parent'