我有一个脚本(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 的相对路径的开头。