shell脚本执行

shell脚本执行

对于我们这些小白而讲,shell脚本无疑是最令人头疼的事了,我再这里讲一下shell脚本运行要注意的哪些。

shell脚本就好像c++,java代码一样,按照从上到下然后从左到右的顺序执行。就像我们日常读书一样。如果shell命令遇见了子进程(嵌套代码),程序就会跟着顺序进入子进程。当子进程完成后,回到父进程,并且把父进程所需要的参数提交。

shell执行的方式

shell一共有4种执行方式

(1)bash file 或者 sh file 当脚本写好以后,文件创建时默认是没有执行的,运行脚本需要执行权限,所以直接运行就不行。要想执行就需要用这种方法。 示例:

shell脚本执行

当脚本开头没有解释器的时候,这就可以用这种方法来执行。

(2)绝对路径或者./ file 执行文件再当前目录下执行,可以直接用./ file去执行这个文件。其中 . 代表的是父目录,在这表现为相对路径。如果执行文件不再该目录下,那就使用绝对路径。在这种方法执行文件的时候用户必须附有该执行权限。

chmod +x file

这条命令可以给用户加上执行权限。然后文件内容头要有解释器。

shell脚本执行

shell脚本执行

(3)可以用管道或者重定向的方法

sh<file 或者 file|sh

这种方法虽然感觉跟第一种方法一样,但是好多时候可以用这种方法做到精简代码。

(4)source file 或者 . file ,如果脚本里面有嵌套,那么就会生成一个子进程。shell脚本中的各个代码按顺序执行,再执行时会创建一个进程。当语句中嵌套其他的有其他脚本,那么这些语句默认情况下会开启一个子进程。而用这两个命令不会打开子进程,它会直接在这个父进程中运行。所以这两个命令可以将其嵌套程序的变量,返回值直接传递到父进程中使用。要注意的是. 后面一定要有空格。

pstree -p 查看进程

为了方便我们查看进程,我们在子脚本中设置休眠时间

sleep 设置休眠时间

shell脚本执行

用./3.log命令运行后车看子进程 

shell脚本执行

用source 3.log运行的结果

shell脚本执行

其中4.log是3.log的嵌套函数,由结果图可以看出,该命令没有开启子进程

原创文章,作者:phosphor,如若转载,请注明出处:http://www.178linux.com/77563

(2)
上一篇 2017-06-05 19:36
下一篇 2017-06-05 22:47

相关推荐

  • LVM创建实例及相关注释

    LVM创建    pv—>vg—->lv—->快照 创建前准备了四块1g硬盘分别为:sdb  sdc sdd  sde,并分别给四块盘划分了1G的空间,并指定了分区系统类型为8e(即Linux LVM) [root@localhost ~]# fdisk /dev/…

    Linux干货 2015-06-08
  • 正则表达式简述

    正则表达式简述 什么是正则表达式: 正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。 正则表达式分类: 标准正…

    Linux干货 2016-04-05
  • N22-南京-修 第一周作业

    一、计算机的组成     计算机由硬件系统和软件系统组成;         硬件系统:运算器、控制器、存储器、输入设备、输出设备; (运算器、控制器):统称为CPU,它是一个具有特定功能的芯片,通过其内部含有的微指令集对从内存中读取来的数据…

    Linux干货 2016-08-15
  • 20160809作业

    一、如何设置tab缩进为4个字符       临时设置:set tabstop=4       全局设置vim /etc/vimrc—>添加set tabstop=4       当前用户生效,手动添加文…

    Linux干货 2016-08-10
  • N22-℡浮生.若夢 ╮-第二周作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 cp文件复制:       常用选项:     -i:交互式复制,即覆盖之前提醒用户确认;     -f:强制覆盖目标文件;  &n…

    Linux干货 2016-09-06
  • 用户和组的简介

     在第二周的学习中,关于用户和组是一个难点,也是重点,本篇博客则是对用户和组的简单阐述,如有错误或不足还请各位大牛指出,在此谢过! 1、用户 # 1.1用户的定义      通过前面对Linux 多用户的理解,我们明白Linux 是真正意义上的多用户操作系统,所以我们能在Linux系统中建若干用户(…

    Linux干货 2017-07-22