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)
phosphorphosphor
上一篇 2017-06-05 19:36
下一篇 2017-06-05 22:47

相关推荐

  • 磁盘管理

    一、磁盘结构     设备文件         I/O Ports: I/O设备地址         一切皆文件:    &nbs…

    Linux干货 2016-09-01
  • 20160809作业

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

    Linux干货 2016-08-10
  • 搭建路由环境

        五个虚拟机分别模拟三个路由器和两个主机,实现不同网段的主机之间的通信。 1.规定四个网段的ip地址:分别是192.168.1.0/24;192.168.2.0/24;192.168.3.0/24;192.168.4.0/24 2.三个路由器命名为R1、R2、R3。R1的两个网关地址为192.168.1.1和19…

    2017-08-20
  • 第十八周

    “1、为LNMP架构添加memcached支持,并完成对缓存效果的测试报告; 架构(3台centos7) nginx与php 192.168.1.108    nginx,php-fpm,php-mysql php-pecl-memcache mysql         192…

    2017-08-21
  • LVM 逻辑卷管理器-增大LV容量

    LVM 逻辑卷管理器-增大LV的容量   步骤: (1)新增一个8e systemID的分区; (2)用pvcreate命令构建PV; (3)用vgextend命令将PV加入vg_1; (4)用lvresize命令将新加入的PV内的PE加入lv_1中; (5)通过resize2fs命令将LV的容量扩充到整个文件系统;   (1)新增一个8…

    Linux干货 2016-09-19
  • locate、find命令使用总结

    一、简介    在linux系统中存在"一切皆文件"的说法,这就足以说明文件的重要性,因此查找文件也是我们必须要掌握的技能。这时候熟练使用locate、find命令也就显得至关重要。尤其是find命令常用于日常工作中如安装完某个软件之后要查看这些软件的安装配置路径,或是需要按指定条件直接查找我们需要操作的文件。因此更需…

    Linux干货 2015-08-31