linux中如何运行shell程序

首先,我们来看一一个程序test.sh

#!/bin/sh#this is a test.cd /tmpecho "hello,this is a test"

执行程序的方法:

1、使文件具有可执行权限,直接运行文件。

chmod命令用来修改文件的权限。

+x是使文件拥有可执行的权限。就如上面我们运行程序一样。

(推荐教程:linux教程)

2、直接调用命令解释器执行程序。

59c229fc583070316c439134414b8af.png

由于我们的解释器是/bin/sh,所以,用sh命令解释器来执行程序。

3、使用source执行文件。

f2de059a92989275bf5b697371a80cd.png

程序执行差异说明:

在我们运行shell程序的三种方法中,前两种方法的执行过程如下:

(1)父进程接收到命令,然后发现不是内建命令,于是创建了一个和自己一样的shell进程,来执行这个外部命令

(2)这个shell子进程用/bin/sh取代自己,sh进程设置自己的运行环境变量,其中包括了$PWD变量。

(3)sh进程依次执行内建命令cd和echo。在此过程中,sh进程(子进程)的环境变量被cd命令改变。

(4)子进程执行完毕,就消亡了,一直在等待的父进程醒来,继续接受命令。

所以我们明白了前两种方法执行结果跟我们预期不一样的原因,父进程的当前目录(环境变量)无法被子进程改变。

但是,使用source执行是shell脚本时不会创建子进程,而是在父进程中直接执行。

相关视频教程推荐:linux视频教程

以上就是linux中如何运行shell程序的详细内容,更多请关注龙方网络其它相关文章!

郑重声明:本文版权包含图片归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们(delete@yzlfxy.com)修改或删除,多谢。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

留言与评论(共有 0 条评论)
昵称:
匿名发表
   
验证码: