0

我正在使用 edx 开源代码库,并且正在整理一个点文件,以便更轻松地在服务器上执行各种任务。我在使用以下 bash 函数时遇到问题

edx-compile_assets() { 
    sudo -H -u edxapp bash
    source /edx/app/edxapp/edxapp_env
    cd /edx/app/edxapp/edx-platform
    paver update_assets cms --settings=aws
    paver update_assets lms --settings=aws
}

运行时sudo -H -u edxapp bash,函数停止并且没有任何反应,当我退出该环境时,其余函数不是以edxapp用户身份执行,而是以普通用户身份执行,这导致命令失败。

所以基本上,它看起来像是sudo -H -u edxapp bash启动了一个单独的进程,当该进程结束时,函数的其余部分执行我想我正在寻找的是一种simple运行命令的方法,因为edxapp user它被激活了sudo -H -u edxapp bash

任何帮助表示赞赏,谢谢:)

4

1 回答 1

0

IIRC,bash有一个-c选项,允许您调用bash并立即执行命令/脚本。因此,我将额外的语句(source、cd、paver ...)放入脚本并添加-c myRemainingScript.shsudo行尾。

于 2015-08-13T17:11:27.643 回答