zoukankan      html  css  js  c++  java
  • Linux中执行shell脚本的4种方法总结

    前言

    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中执行的。

    参看链接:https://www.jb51.net/article/53924.htm

    如果错过太阳时你流了泪,那你也要错过群星了。
    在所有的矛盾中,要优先解决主要矛盾,其他矛盾也就迎刃而解。
    不要做个笨蛋,为失去的郁郁寡欢,聪明的人,已经找到了解决问题的办法,或正在寻找。
  • 相关阅读:
    hdu 4027 Can you answer these queries?
    hdu 4041 Eliminate Witches!
    hdu 4036 Rolling Hongshu
    pku 2828 Buy Tickets
    hdu 4016 Magic Bitwise And Operation
    pku2886 Who Gets the Most Candies?(线段树+反素数打表)
    hdu 4039 The Social Network
    hdu 4023 Game
    苹果官方指南:Cocoa框架(2)(非原创)
    cocos2d 中 CCNode and CCAction
  • 原文地址:https://www.cnblogs.com/szrs/p/15660408.html
Copyright © 2011-2022 走看看