• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >linux shell > 执行Shell脚本的4种方法及区别介绍

执行Shell脚本的4种方法及区别介绍

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了shell脚本的编写方法,执行shell脚本命令,java执行shell脚本,shell脚本怎么执行,如何执行shell脚本等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

执行shell脚本有以下几种方式

1、相对路径方式,需先cd到脚本路径下

[root@banking tmp]# cd /tmp 
[root@banking tmp]# ./ceshi.sh
</div>

脚本执行成功 

2、绝对路径方式
[root@banking tmp]# /tmp/ceshi.sh  
</div>

脚本执行成功 

3、bash命令调用
[root@banking /]# bash /tmp/ceshi.sh
</div>
脚本执行成功 

4、. (空格)  相对或绝对方式
[root@banking /]# . /tmp/ceshi.sh  
</div>

说下几种方式的区别

第一种和第二种没有什么区别,两种方式都需要提前赋予脚本以执行权限。

第三种是把脚本当做bash的调用来处理,所以,脚本不需要有执行权限就可以执行。

前三种方式都是在当前shell中打开一个子shell来执行脚本内容,当脚本内容结束,则子shell关闭,回到父shell中。

第四种是使脚本内容在当前shell里执行,而不是单独开子shell执行。

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

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

验证:

[root@banking /]# cat /tmp/ceshi.sh  
top 
</div>

1、前三种执行方式下的pstree显示
├─sshd─┬─sshd───bash───bash───top 
│      └─sshd───bash───pstree 
</div>

2、第四种执行方式下的pstree显示
├─sshd─┬─sshd───bash───top 
│      └─sshd───bash───pstree 
</div>

3、验证环境变量设置的继承关系及可见关系
建立两个脚本,father.sh和subshell.sh。其中father.sh调用subshell.sh
[root@banking /]# cat /tmp/father.sh
v_ceshi='father'
#-------父shell中定义变量
echo "以子shell方式调用脚本"
/tmp/subshell.sh
echo "输出v_ceshi值为${v_ceshi}"
echo ""
echo "在当前shell中执行脚本"
. /tmp/subshell.sh
echo "输出v_ceshi值为${v_ceshi}"
[root@banking /]#
[root@banking /]# cat /tmp/subshell.sh
v_ceshi=son
[root@banking /]#
</div>

执行结果为

[root@banking /]# /tmp/father.sh
以子shell方式调用脚本
输出v_ceshi值为father

在当前shell中执行脚本
输出v_ceshi值为son
</div>

</div>

您可能想查找下面的文章:

  • 执行Shell脚本的4种方法及区别介绍
  • 执行Shell脚本的4种方法及区别介绍
  • Shell脚本之无限循环的两种方法
  • Shell脚本中获取进程ID的方法
  • Shell脚本避免重复执行的方法
  • Shell踢人的三种方法

相关文章

  • linux shell数据重定向(输入重定向与输出重定向)详细分析
  • shell中删除文件中重复行的方法
  • linux crontab 实现每秒执行的实例
  • Shell脚本自动备份MySQL到FTP并定期清理过期备份
  • 一天一个shell命令 linux文本内容操作系列-sed命令详解
  • shell脚本实现同时多台远程主机执行命令的代码分享
  • 如何正确使用Linux命令–du
  • shell脚本实现输入密码显示星号
  • 大小写字母转换的shell脚本代码
  • linux 驱动之Kconfig文件和Makefile文件实例

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • shell 批量压缩指定目录及子目录内图片的方法
    • shell脚本 自动创建用户详解及实例代码
    • csh,tcsh,bash,sh等shell的区别
    • linux C语言开发管道通信实例详解
    • 编写你的shell其实很简单
    • Linux磁盘空间被未知资源耗尽的解决方法
    • Linux makefile 和shell文件相互调用实例详解
    • Centos下查看网卡的实时流量命令
    • Bash Shell中的select命令简单使用示例
    • Shell中实现“多线程”执行脚本文件完美解决方案

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有