我有一个以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
我该怎么办?
答案 0 :(得分:1)
还有另一个文件(B),它不以#!/ bin / sh开头;它有一些我需要为A设置的环境变量。
在这种情况下,您应 source 在脚本A中编写脚本B.要在sh中获取脚本,命令为:
. /path/to/B.sh
请注意,.
不是脚本B的相对路径的开头。