Sourcing a bash script from QT application
-
I am new to Qt. I want to run a bash script that exports some environmental variables then using the exported variables in my qt application . I am able to get environmental variables using QprocessEnvironment. The problem is I can't source the script and running using Qprocess::execute or Qprocess::startdetached() does not export the variables
-
I am new to Qt. I want to run a bash script that exports some environmental variables then using the exported variables in my qt application . I am able to get environmental variables using QprocessEnvironment. The problem is I can't source the script and running using Qprocess::execute or Qprocess::startdetached() does not export the variables
@ahtarek
This has nothing to do with Qt. You cannot run a subprocess in Linux which affects the environment variables in the program which executes it.source
is a builtin command in bash which executes in the bash and does not create any subprocess.In order to change the values of environment variables in (say) a Qt program you need to change the environment variables in that program (e.g. Qt has qputenv()). You might read the lines from a (script) file, but you would have to "parse" it so that you can make calls to update the environment from within the program.
This does assume you want the environment changed in the calling Qt program itself. If you only want to have those variables so that you can
QProcess
something else, you might consider instead executing a command whichsource
s them followed by executing the command, likeprocess.start("/bin/bash", { "-c", "source script && run some command" });