无法从另一个shell脚本

时间:2016-05-31 08:27:24

标签: linux bash shell

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

还有另一个文件(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
    

我该怎么办?

1 个答案:

答案 0 :(得分:1)

  

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

在这种情况下,您应 source 在脚本A中编写脚本B.要在sh中获取脚本,命令为:

. /path/to/B.sh

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