Reading system varibles in script
up vote
0
down vote
favorite
I am trying to read a system variable that is XDG_CURRENT_DESKTOP from a shell script.
echo the variable in terminal works fine.
but when running it within a bash script it echoes empty due to that the script runs from an child shell
I cannot export it, I don't know the source of the varible.
is there any way to import a system variable without messing with bashrc?
/Pierre
bash scripts environment-variables
add a comment |
up vote
0
down vote
favorite
I am trying to read a system variable that is XDG_CURRENT_DESKTOP from a shell script.
echo the variable in terminal works fine.
but when running it within a bash script it echoes empty due to that the script runs from an child shell
I cannot export it, I don't know the source of the varible.
is there any way to import a system variable without messing with bashrc?
/Pierre
bash scripts environment-variables
Not sure exactly what you mean by, "... echoes empty due to that the script runs from an child shell" Are you saying you have a shell script that runs, "echo ${XDG_CURRENT_DESKTOP}" and if you run that script from a shell it prints out a blank line (i.e. XDG_CURRENT_DESKTOP is not set)?
– Lewis M
Nov 29 at 12:48
When you run a script, it runs in a subshell. Variables are only valid within the context of that subshell. and "system varibles" like XDG_CURRENT_DESKTOP are not included in the subshell, so no XDG_CURRENT_DESKTOP is not set in the subshell.
– Pierre Den Gode
Nov 30 at 9:26
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I am trying to read a system variable that is XDG_CURRENT_DESKTOP from a shell script.
echo the variable in terminal works fine.
but when running it within a bash script it echoes empty due to that the script runs from an child shell
I cannot export it, I don't know the source of the varible.
is there any way to import a system variable without messing with bashrc?
/Pierre
bash scripts environment-variables
I am trying to read a system variable that is XDG_CURRENT_DESKTOP from a shell script.
echo the variable in terminal works fine.
but when running it within a bash script it echoes empty due to that the script runs from an child shell
I cannot export it, I don't know the source of the varible.
is there any way to import a system variable without messing with bashrc?
/Pierre
bash scripts environment-variables
bash scripts environment-variables
asked Nov 29 at 10:56
Pierre Den Gode
93
93
Not sure exactly what you mean by, "... echoes empty due to that the script runs from an child shell" Are you saying you have a shell script that runs, "echo ${XDG_CURRENT_DESKTOP}" and if you run that script from a shell it prints out a blank line (i.e. XDG_CURRENT_DESKTOP is not set)?
– Lewis M
Nov 29 at 12:48
When you run a script, it runs in a subshell. Variables are only valid within the context of that subshell. and "system varibles" like XDG_CURRENT_DESKTOP are not included in the subshell, so no XDG_CURRENT_DESKTOP is not set in the subshell.
– Pierre Den Gode
Nov 30 at 9:26
add a comment |
Not sure exactly what you mean by, "... echoes empty due to that the script runs from an child shell" Are you saying you have a shell script that runs, "echo ${XDG_CURRENT_DESKTOP}" and if you run that script from a shell it prints out a blank line (i.e. XDG_CURRENT_DESKTOP is not set)?
– Lewis M
Nov 29 at 12:48
When you run a script, it runs in a subshell. Variables are only valid within the context of that subshell. and "system varibles" like XDG_CURRENT_DESKTOP are not included in the subshell, so no XDG_CURRENT_DESKTOP is not set in the subshell.
– Pierre Den Gode
Nov 30 at 9:26
Not sure exactly what you mean by, "... echoes empty due to that the script runs from an child shell" Are you saying you have a shell script that runs, "echo ${XDG_CURRENT_DESKTOP}" and if you run that script from a shell it prints out a blank line (i.e. XDG_CURRENT_DESKTOP is not set)?
– Lewis M
Nov 29 at 12:48
Not sure exactly what you mean by, "... echoes empty due to that the script runs from an child shell" Are you saying you have a shell script that runs, "echo ${XDG_CURRENT_DESKTOP}" and if you run that script from a shell it prints out a blank line (i.e. XDG_CURRENT_DESKTOP is not set)?
– Lewis M
Nov 29 at 12:48
When you run a script, it runs in a subshell. Variables are only valid within the context of that subshell. and "system varibles" like XDG_CURRENT_DESKTOP are not included in the subshell, so no XDG_CURRENT_DESKTOP is not set in the subshell.
– Pierre Den Gode
Nov 30 at 9:26
When you run a script, it runs in a subshell. Variables are only valid within the context of that subshell. and "system varibles" like XDG_CURRENT_DESKTOP are not included in the subshell, so no XDG_CURRENT_DESKTOP is not set in the subshell.
– Pierre Den Gode
Nov 30 at 9:26
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Ask Ubuntu!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1097081%2freading-system-varibles-in-script%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Not sure exactly what you mean by, "... echoes empty due to that the script runs from an child shell" Are you saying you have a shell script that runs, "echo ${XDG_CURRENT_DESKTOP}" and if you run that script from a shell it prints out a blank line (i.e. XDG_CURRENT_DESKTOP is not set)?
– Lewis M
Nov 29 at 12:48
When you run a script, it runs in a subshell. Variables are only valid within the context of that subshell. and "system varibles" like XDG_CURRENT_DESKTOP are not included in the subshell, so no XDG_CURRENT_DESKTOP is not set in the subshell.
– Pierre Den Gode
Nov 30 at 9:26