我正在使用edx开源代码库,我正在整理一个dotfile,以便更轻松地在服务器上执行各种任务。 我在使用以下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
时,函数暂停并且没有任何反应,当我从该env退出时,其余的函数不是作为edxapp
用户执行,而是作为普通用户执行,这导致命令失败。
基本上,看起来sudo -H -u edxapp bash
启动一个单独的进程,当该进程结束时,函数的其余部分执行
我想我正在寻找的simple
方法可以edxapp user
方式运行命令sudo -H -u edxapp bash
,viewAll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String fileName = "/Notes/info";
File myFile = new File(baseDir + File.separator + fileName);
try {
FileInputStream fIn = new FileInputStream(myFile);
BufferedReader myReader = new BufferedReader(
new InputStreamReader(fIn));
String text = "";
String aDataRow = "";
while ((aDataRow = myReader.readLine()) != null) {
text += aDataRow + "\n";
}
}
catch (IOException e) {
}
welcomeText.setText("Welcome, " + text);
}
});
感谢任何帮助,谢谢:)
答案 0 :(得分:0)
IIRC,bash
采用-c
选项,允许您调用bash
并立即执行命令/脚本。因此,我将额外的陈述(来源,广告管理系统,摊铺机等)放入脚本中,并在-c myRemainingScript.sh
行的末尾添加sudo
。