博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
笑谈区别之--执行Shell脚本的四种方法
阅读量:5819 次
发布时间:2019-06-18

本文共 1422 字,大约阅读时间需要 4 分钟。

hot3.png

执行shell脚本方式:

法一、绝对路径方式:

[root@Dasoncheng ~]# cat 2.sh #!/bin/bashpstree
[root@Dasoncheng ~]# /root/2.sh├─sshd───sshd───bash───2.sh───pstree##需要具有-x执行权限,因为这样执行 没有指定命令解释器、则会使用脚本里面指定的命令解释器(如#!/bin/bash)去执行该脚本.##如果脚本里面也没有指定,则会调用系统默认的shell解释器(echo $SHELL)查看;##通过pstree可以看到,是单独启动了2.sh这个子shell来执行脚本里面的命令的;

法二、相对路径方式:

[root@Dasoncheng ~]# ./2.sh├─sshd───sshd───bash───2.sh───pstree##同法一,就是路径方式不同;

法三、bash命令调用:

[root@Dasoncheng ~]# sh 2.sh├─sshd───sshd───bash───sh───pstree##这里就是指定了命令解释器bash,即单独启动了sh这个子shell来执行命令;
[root@Dasoncheng ~]# which sh/usr/bin/sh[root@Dasoncheng ~]# ll /usr/bin/shlrwxrwxrwx 1 root root 4 Feb 24  2017 /usr/bin/sh -> bash[root@Dasoncheng ~]# ll /usr/bin/basbase64      basename    bash        bashbug     bashbug-64  [root@Dasoncheng ~]# ll /usr/bin/bash-rwxr-xr-x 1 root root 960472 Dec  7  2016 /usr/bin/bash

法四、". 2.sh"点空格相对路径 或者"./root/2.sh"点空格绝对路径方式:

[root@Dasoncheng ~]# . 2.sh├─sshd───sshd───bash───pstree##这个及下面的绝对路径,都是直接在当前shell环境下面 执行了shell脚本;(没有创建子shell)##其实". "点空格 就是调用了系统里面的一个函数,这里不讲;
[root@Dasoncheng ~]# . /root/2.sh├─sshd───sshd───bash───pstree

说下几种方式的区别:

  • 第一种和第二种没有什么区别,两种方式都需要提前赋予脚本以执行权限。
  • 第三种是把脚本当做bash的调用来处理,所以,脚本不需要有执行权限就可以执行。
  • 前三种方式都是在当前shell中打开一个子shell来执行脚本内容,当脚本内容结束,则子shell关闭,回到父shell中。
  • 第四种是使脚本内容在当前shell里执行,而不是单独开子shell执行。

开子shell与不开子shell的区别就在于,环境变量的继承关系,如在子shell中设置的当前变量,不做特殊通道处理的话,父shell是不可见的。

而在当前shell中执行的话,则所有设置的环境变量都是直接生效可用的。

转载于:https://my.oschina.net/u/3651233/blog/1614997

你可能感兴趣的文章
Spring Web Services 3.0.4.RELEASE和2.4.3.RELEASE发布
查看>>
有关GitHub仓库分支的几个问题
查看>>
云原生的浪潮下,为什么运维人员适合学习Go语言?
查看>>
EAServer 6.1 .NET Client Support
查看>>
锐捷交换机密码恢复(1)
查看>>
Kali linux virtualbox rc=1908 错误解决办法
查看>>
linux软件包管理之三(源代码安装)
查看>>
[转载]设置Ubuntu自动连接无线,无须再输入密钥环和无线密码
查看>>
Apache配置
查看>>
Ext gridPanel 单元格数据的渲染
查看>>
Android SDK 的下载代理
查看>>
Method Swizzling对Method的要求
查看>>
佛祖保佑,永不宕机
查看>>
四、配置开机自动启动Nginx + PHP【LNMP安装 】
查看>>
LNMP一键安装
查看>>
Linux 目录结构及内容详解
查看>>
Oracle命令导入dmp文件
查看>>
OCP读书笔记(24) - 题库(ExamD)
查看>>
解决Unable to load R3 module ...VBoxDD.dll (VBoxDD):GetLastError=1790
查看>>
.net excel利用NPOI导入oracle
查看>>