https://blog.csdn.net/Touch_Dream/article/details/80521131

四中方法

方法一:切换到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的sh文件怎么执行,linux下执行sh文件的四种做法相关推荐

  1. linux mysql 运行sql文件命令大全_linux下执行mysql的sql文件

    linux下执行mysql的sql文件 mysql -uroot -proot 进入到mysql 然后执行source /var/ftp/pub/sogoodsoft.sql; 即可. www.2ct ...

  2. linux手动生成dump文件权限不足_linux下生成dump文件方法及设置

    https://andyniu.iteye.com/blog/1965571 Linux中生成 Core Dump 文件的方法 1 什么是 Core Dump Core Dump 又叫核心转储.在程序 ...

  3. linux将文件下载到本地windows,XSHELL下直接下载文件到本地(Windows)

    xshell很好用,然后有时候想在windows和linux上传或下载某个文件,其实有个很简单的方法就是rz,sz 首先你的Ubuntu需要安装rz.sz(如果没有安装请执行以下命令,安装完的请跳过. ...

  4. linux删除目录tmpab是什么意思_linux 下tmp目录文件怎么被删除的?

    tmp目录下文件什么时候会删除? 写这篇文章是我要重启长时间运行的hadoop集群的时候,关闭不了相应的服务.查看shell脚本看到,要找到服务的pid文件,才能重启,一般情况下pid文件都会存储在t ...

  5. linux面试题:删除一个目录下的所有文件,但保留一个指定文件

    此题问题虽小,但是初学者还是很难给出合理的答案的!本文来自老男孩21期网络班学员 面试题:删除一个目录下的所有文件,但保留一个指定文件解答: 假设这个目录是/xx/,里面有file1,file2,fi ...

  6. linux误删表空间文件,UNDO表空间下的数据文件被误删除后的处理方法

    UNDO表空间下的数据文件被误删除后的处理方法: 操作前备份数据库,以避免更大的损失. 思路: 1.把误删除的数据文件offline 2.正常打开数据库后创建新的UNDO表空间及数据文件 3.修改相应 ...

  7. Linux批量解压多个路径下的tgz文件

    一个目录下有多个文件夹,每个文件夹都有一个tgz压缩文件,使用 find -maxdepth 2 -name "*.tgz" | xargs -i tar zxvf  {} 这条命 ...

  8. linux下查看mysql版本的四种方法

    Linux查看MySQL版本的四种方法 1 在终端下执行 mysql -V 2 在help中查找 mysql --help |grep Distrib 3 在mysql 里查看 select vers ...

  9. java m2文件放哪里_windows下打开.m2文件夹,没有找到setting.xml

    那就自己创建一个 手动创建本地仓库的存放路径,例如:D:\Java\m2\repository: 在windows的环境变量中增加了新的用户变量M2_REPO,其对应的值为D:\Java\m2\rep ...

最新文章

  1. 如何让自己时刻冷静的方法_如何锻炼自己的口才及沟通技巧?这5个方法让你受用一辈子...
  2. PCL点云库用贪婪投影三角法网格化实现点云的表面重建
  3. h5移动端如何让页面强制横屏
  4. letecode [160] - Intersection of Two Linked Lists
  5. Node.js项目目录介绍
  6. log4j无法打印日志的问题
  7. linux系统键盘记录器,可截获到 QQ 密码 键盘记录器源码
  8. LINUX虚拟机安装增强功能时报错:/sbin/mount.vboxsf: mounting failed with the error: No such device
  9. linux安全擦除ssd命令,如何在不破坏SSD的情况下安全擦除SSD | MOS86
  10. 【转】word公式大括号左对齐
  11. 【C++】pcl中的简单点云可视化
  12. 飞冰,怎么配置打包时候去掉console.log配置
  13. 计算机键盘快速指南,如何练习盲打(快速学会键盘盲打技巧)
  14. 信捷伺服刚性调整_信捷伺服常见问题分析解答.pdf
  15. 没有SEO的DiscuzQ 值不值得站长选择?
  16. 500 – 内部服务器错误。 您查找的资源存在问题,因而无法显示。
  17. 股票风险 股票交易上的投机行为往往十分危险。假设某股票行为十分怪异,每天不是涨停(上涨10%)就是跌停(下跌10%)。
  18. 新概念英语第一册——1-4笔记
  19. JavaScript 判断对象中属性的值是否空,如果为空,则删除该属性
  20. Android商城开发系列

热门文章

  1. C#中Bitmap类实现对图像操作的一些方法(转)
  2. c++中,可以用类名直接访问非静态成员函数?
  3. 外部网络如何获取网口打印机的ip地址_Win7如何连接网络打印机?详细的新手DIY教程...
  4. 图像语义分割的前世今生
  5. 时间戳转换(各种格式的都有,年月日 时分秒 周)
  6. android 获取弹窗的值,从弹出窗口调用的Activity 返回一个值_popupwindow_开发99编程知识库...
  7. vue 关闭弹如何销毁子组件_vue中的eventBus会产生内存泄漏吗
  8. 如何在bootstap中修改checkbox的样式
  9. python 计算过程图片_[Python图像处理]九.图像形态学相关运算
  10. centos7搭建Linux集群,CentOS 7下Kafka集群安装