如何从另一个shell脚本调用shell脚本?

我有两个shell脚本a.shb.sh

我怎么能叫b.sh从shell脚本中a.sh


有几种方法可以做到这一点:

  • 使其他脚本可执行,在顶部添加#!/bin/bash行,并将文件的路径添加到$ PATH环境变量中。 然后,您可以将其称为正常命令。

  • source命令(别名是. )调用它,如下所示: source /path/to/script

  • 使用bash命令执行它: /bin/bash /path/to/script

  • 第一个和第三个方法将脚本作为另一个进程执行,因此其他脚本中的变量和函数将不可访问。
    第二种方法在第一个脚本的进程中执行脚本,并从另一个脚本中提取变量和函数,以便它们可以从调用脚本中使用。

    在第二种方法中,如果您在第二个脚本中使用exit ,它也会退出第一个脚本。 在第一种和第三种方法中不会发生这种情况。


    看一下这个。

    #!/bin/bash
    echo "This script is about to run another script."
    sh ./script.sh
    echo "This script has just run another script."
    

    我正在寻找的答案是:

    ( exec "path/to/script" )
    

    如前所述, exec在不创建新进程的情况下替换shell。 然而 ,我们可以把它放在一个子shell中,这是通过使用这些parantheses完成的。

    编辑:其实( "path/to/script" )就够了。

    链接地址: http://www.djcxy.com/p/56853.html

    上一篇: How to call shell script from another shell script?

    下一篇: I can't set cron job