无法通过调用另一个脚本来执行脚本

时间:2017-04-25 05:10:59

标签: linux bash shell

我有两个用于两个不同用户用户的shell脚本' a'和用户' root':

用户' a '

a.sh

export CODE=`pwd | cut -d / -f 5`
isEnabled=`grep -i isEnabled $HOME/$CODE/config/code.properties | awk -F'=' '{print $2}'`
用户' root'

b.sh

su - a -c "sh /export/home/a/a1/bin/a.sh status

如您所见,root执行脚本b.sh执行脚本a.sh 但实际上它失败了,因为它找不到脚本的路径 运行b.sh

时,运行时可能缺少a.sh中的变量$ CODE

经过调查我在 b.sh

中累了以下内容
. /path/to/a.sh
source /path/to/a.sh
. /path/to/a.sh "$CODE"
. $(/path/to/a.sh $CODE)

有人可以提出建议吗?

谢谢大家。

1 个答案:

答案 0 :(得分:0)

变量$CODE应该存在,但它将被设置为主目录。尝试使用basename $0代替pwd。这将获得正在执行脚本的目录,而不是执行它的用户的当前工作目录。