无法从另一个 shell 脚本执行脚本



我有一个脚本(A),它以#!/bin/sh的shebang开头。

还有另一个文件(B)不是以#!/bin/sh开头;它有一些环境变量,我需要设置这些变量才能A工作。

文件B运行良好,并在从 .bash_profile 执行时设置变量。 例如,在我的.bash_profile文件中:

{. /(full_path)/(envname)/(filename).sh;}

当我在A脚本文件中编写同一行时,没有任何反应。 为什么不呢?

我确实echo $env_variable_name ; 这在通过.bash_profile执行时给了我正确的路径,但在通过我的脚本A时给了我空白。我试过了

  • /(full_path)/(envname)/(filename).sh
    
  • SCRIPT_FULL_NAME=$(readlink -f "$0")
    SCRIPT_PATH=$(dirname $SCRIPT_FULL_NAME)
    sh ${SCRIPT_PATH}/(filename).sh
    

我该怎么办?

还有另一个文件(B)不以#!/bin/sh开头;它有一些环境变量,我需要设置这些变量才能使A工作。

在这种情况下,您应该在脚本 A 中获取脚本 B。要在 sh 中获取脚本,命令为:

. /path/to/B.sh

请注意,.不是脚本 B 的相对路径的开头。

相关内容

  • 没有找到相关文章

最新更新