当前位置:  操作系统/服务器>linux

Linux中执行shell脚本的4种方法总结

    来源: 互联网  发布时间:2014-10-17

    本文导语:  bash shell 脚本的方法有多种,现在作个小结。假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限。 方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本: 代码如下: c...

bash shell 脚本的方法有多种,现在作个小结。假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限。

方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本:

代码如下:

cd /data/shell

./hello.sh


./的意思是说在当前的工作目录下执行hello.sh。如果不加上./,bash可能会响应找到不到hello.sh的错误信息。因为目前的工作目录(/data/shell)可能不在执行程序默认的搜索路径之列,也就是说,不在环境变量PASH的内容之中。查看PATH的内容可用 echo $PASH 命令。现在的/data/shell就不在环境变量PASH中的,所以必须加上./才可执行。

方法二:以绝对路径的方式去执行bash shell脚本:

代码如下:

/data/shell/hello.sh

方法三:直接使用bash 或sh 来执行bash shell脚本:
代码如下:

cd /data/shell

bash hello.sh



代码如下:

cd /data/shell

sh hello.sh


注意,若是以方法三的方式来执行,那么,可以不必事先设定shell的执行权限,甚至都不用写shell文件中的第一行(指定bash路径)。因为方法三是将hello.sh作为参数传给sh(bash)命令来执行的。这时不是hello.sh自己来执行,而是被人家调用执行,所以不要执行权限。那么不用指定bash路径自然也好理解了啊,呵呵……。

方法四:在当前的shell环境中执行bash shell脚本:

代码如下:

cd /data/shell

. hello.sh



代码如下:

cd /data/shell

source hello.sh


前三种方法执行shell脚本时都是在当前shell(称为父shell)开启一个子shell环境,此shell脚本就在这个子shell环境中执行。shell脚本执行完后子shell环境随即关闭,然后又回到父shell中。而方法四则是在当前shell中执行的。

    
 
 

您可能感兴趣的文章:

  • 请问在 LINUX下如何编辑脚本(可以直接运行脚本访问WINDOW系统)
  • 如何传递参数给linux shell 脚本(当脚本从标准输入而不是从文件获取时)
  • 关于arm linux下的别名配置脚本如何在进入用户时让shell执行的问题,如bashrc,profile,.bash_profile等脚本,寻求高手解答
  • Linux下如何编写脚本文件
  • 关于linux的脚本运行。。。求高人指点
  • linux重新启动后自动运行脚本程序
  • 谁能简单介绍一下LINUX上的各种语言脚本的功能.
  • linux shell脚本
  • 请问关于linux脚本的一个问题。
  • LINUX的系统管理脚本
  • Linux脚本
  • linux脚本中命令运行结果判断
  • 求助:linux脚本语言写SQL语句
  • window下通过ftp执行linux脚本?
  • 如何在Linux下使用脚本实现程序的自动重启!望各位详解!
  • 求linux下定时重启服务的脚本
  • linux shell脚本无法改变环境变量
  • linux能够通过执行脚本添加oracle数据库的用户吗
  • 求助:Linux 脚本如何提取MAC地址
  • 请教斑竹,在linux下怎么执行位于其他机器上的脚本
  • linux下通过crond实现自动执行程序
  • 菜鸟请教:linux 直接执行可执行文件
  • linux下nm命令(显示可执行文件的符号信息)介绍以及常见nm命令用法举例
  • 如何在LINUX中在系统启动后自动执行一个执行一个程序?
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • linux在脚本执行命令和直接在命令行执行命令有什么区别
  • linux下不使用sudo命令执行docker的操作步骤
  • linux设备驱动执行完__init之后就执行__devinit吗
  • 很菜的问题——Linux(RedHat8)下的齿轮图标程序如何执行,是什么shell命令可以执行它?
  • 请问LINUX7.2下,哪条命令是查看系统上曾经执行过的执行命令?(包括启动以前的)
  • 如何用JAVA执行本机Linux操作系统的可执行文件?一定给分!在线等待!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux下编译ACE5.7.5(总结)
  • 求Linux和Windows异同总结,顺便散分
  • linux进程间通讯方式(IPC)优缺点总结
  • Linux Shell 常见的命令行格式简明总结
  • Linux下Oracle常见安装错误总结及参考案例
  • linux服务器之LVS、Nginx和HAProxy负载均衡器对比总结
  • Linux pidof命令使用总结
  • 基于linux下C开发中的几点技术经验总结
  • 个人编程学习总结以及Linux开发方向和国内相应具体情况讨教?
  • 最近心情不好,散分总结自己的生活&Linux历程
  • 我的总结,RedHat linux9.0新手遇到的问题,大家过来帮忙解决,好多问题,也许你会其中的几个。
  • 自己总结的linux使用技巧
  • Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)
  • 深入linux下遍历目录树的方法总结分析
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在没有linux的盘,只有DOS启动盘)
  • Linux Kernel 'sctp_v6_xmit()'函数信息泄露漏洞
  • 如何让win2000和linux共存。我装好WIN2000,再装LINUX7.0,但LILO只能找到LINUX,不能引导WIN2000
  • linux c下利用srand和rand函数生成随机字符串
  • 在windows中的VMware装了个linux,主板有两个串口,能做windows和linux的串口通信测试么,怎么测试这两个串口在linux是有效
  • Linux c++虚函数(virtual function)简单用法示例代码


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3