bash中调用其他脚本的三种方式

在linux下,bash有三种方式可以调用其他脚本

(转自:http://openwares.net/linux/bash_call_other_scripts.html


Introduction(unix shell 语言)

       Bash(GNU Bourne-Again Shell)是许多Linux平台的内定Shell,是一个为GNU计划编写的Unix shell.

       事实上,还有许多传统UNIX上用的Shell,像tcsh、csh、ash、bsh、ksh等等,Shell Script大致都类同,当您学会一种Shell以后,其它的Shell会很快就上手,大多数的时候,一个Shell Script通常可以在很多种Shell上使用。



Contents

  • 1-----fork

    这是最常用的调用方式,直接指定要调用的脚本的名字,也可以指定要使用的shell,比如
          sh ${scriptname}
          bash ${scriptname}
    如果不指定使用的shell名称,则根据脚本的shebang来确定使用的脚本解释器。

    这种方式,shell会为调用脚本fork一个子进程来执行被调用的脚本。子进程继承父进程的环境变量,子进程结束时会有退出状态给父进程。

  • 2-----source(.)

    source或.bash的内建命令在命令行上执行的时候,将会直接执行被调用脚本。
           在脚本内source另一个脚本时,会将被调用脚本插入到调用脚本,并执行这些脚本。因此调用脚本和被调用脚本可以相互访问彼此的变量。
           类似C/C++语言的include语句。


    举个例子example:微笑

    在文件1-exe-env.sh中:@@@@@@@@@@

    #!/bin/bash
    echo "will setting env for GDB.."
    #source          /home/tonylau/mtklog/gdb-core-dump-env.sh/调用另一个脚本( source)
          .                /home/tonylau/mtklog/gdb-core-dump-env.sh/或者用这种方式( . )

    在文件gdb-core-dump-env.sh中:@@@@@@@@@@

    #!/bin/bash
    #add for python   :gdb_debug
    export PYTHONHOME=/usr/lib/python2.7
    export PYTHONPATH=.:$PYTHONHOME:$PYTHONHOME/dist-packages
    export PATH=$PATH:$PYTHONHOME:$PYTHONPATH

    bash命令行中调用脚本:@@@@@@@@@@

    tonylau@tonylau-OptiPlex-780:~/mtklog$ source 1-exe-env.sh   或者是   . 1-exe-env.sh  或者  .    ./1-exe-env.sh
    will setting env for GDB..
    tonylau@tonylau-OptiPlex-780:~/mtklog$ echo $PYTHONHOME
    /usr/lib/python2.7


  • 3-----exec

    这是 shell 的内建命令,将使用被调用脚本来取代当前进程,当被调用脚本执行完毕后,调用脚本也随之结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值