Set Variable Name in shell script permanently
Clash Royale CLAN TAG#URR8PPP
I need to change variable name every time I ran script.
Lets say I have a variable
a="foo"
echo "Value is : $a"
and it will print
Value is foo
But in same script i am changing the variable value
a="bar"
And if i run the script again it should print
Value is bar
Can we achieve that in unix?
bash shell
add a comment |
I need to change variable name every time I ran script.
Lets say I have a variable
a="foo"
echo "Value is : $a"
and it will print
Value is foo
But in same script i am changing the variable value
a="bar"
And if i run the script again it should print
Value is bar
Can we achieve that in unix?
bash shell
Have you tried it? What happened?
– roaima
Feb 1 at 7:19
add a comment |
I need to change variable name every time I ran script.
Lets say I have a variable
a="foo"
echo "Value is : $a"
and it will print
Value is foo
But in same script i am changing the variable value
a="bar"
And if i run the script again it should print
Value is bar
Can we achieve that in unix?
bash shell
I need to change variable name every time I ran script.
Lets say I have a variable
a="foo"
echo "Value is : $a"
and it will print
Value is foo
But in same script i am changing the variable value
a="bar"
And if i run the script again it should print
Value is bar
Can we achieve that in unix?
bash shell
bash shell
edited Feb 1 at 7:16
Kumar Harsh
asked Feb 1 at 6:38
Kumar HarshKumar Harsh
62
62
Have you tried it? What happened?
– roaima
Feb 1 at 7:19
add a comment |
Have you tried it? What happened?
– roaima
Feb 1 at 7:19
Have you tried it? What happened?
– roaima
Feb 1 at 7:19
Have you tried it? What happened?
– roaima
Feb 1 at 7:19
add a comment |
1 Answer
1
active
oldest
votes
The line $a="bar"
ought to give you an error message saying
bash: foo=bar: command not found
To set a
to the string bar
, use a="bar"
. Notice that $a
is the value of the variable a
, and that $a="bar"
is nonsensical.
If you want to change the value each time you run the script, you can do two things (at least).
Make
a
an environment variable. This mean that you seta
outside of the script andexport
it:export a="bar"
Then you run your script as usual (it would need to be modified to not overwrite the value of
a
inherited from the environment first). You could also usea="bar" ./myscript.sh
to set the variable for the script only (i.e., not making it a variable in the calling shell).
Make the script take the value from the command line, so that you call the script like
./myscript.sh "bar"
The script would then do
a="$1"
to set the value of
a
from the command line argument. Here,$1
means "the first command line argument".
Whichever way you go about doing this, you may also want to check that the value "$a"
is sane (i.e. contains valid data) before using it.
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
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%2funix.stackexchange.com%2fquestions%2f498068%2fset-variable-name-in-shell-script-permanently%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The line $a="bar"
ought to give you an error message saying
bash: foo=bar: command not found
To set a
to the string bar
, use a="bar"
. Notice that $a
is the value of the variable a
, and that $a="bar"
is nonsensical.
If you want to change the value each time you run the script, you can do two things (at least).
Make
a
an environment variable. This mean that you seta
outside of the script andexport
it:export a="bar"
Then you run your script as usual (it would need to be modified to not overwrite the value of
a
inherited from the environment first). You could also usea="bar" ./myscript.sh
to set the variable for the script only (i.e., not making it a variable in the calling shell).
Make the script take the value from the command line, so that you call the script like
./myscript.sh "bar"
The script would then do
a="$1"
to set the value of
a
from the command line argument. Here,$1
means "the first command line argument".
Whichever way you go about doing this, you may also want to check that the value "$a"
is sane (i.e. contains valid data) before using it.
add a comment |
The line $a="bar"
ought to give you an error message saying
bash: foo=bar: command not found
To set a
to the string bar
, use a="bar"
. Notice that $a
is the value of the variable a
, and that $a="bar"
is nonsensical.
If you want to change the value each time you run the script, you can do two things (at least).
Make
a
an environment variable. This mean that you seta
outside of the script andexport
it:export a="bar"
Then you run your script as usual (it would need to be modified to not overwrite the value of
a
inherited from the environment first). You could also usea="bar" ./myscript.sh
to set the variable for the script only (i.e., not making it a variable in the calling shell).
Make the script take the value from the command line, so that you call the script like
./myscript.sh "bar"
The script would then do
a="$1"
to set the value of
a
from the command line argument. Here,$1
means "the first command line argument".
Whichever way you go about doing this, you may also want to check that the value "$a"
is sane (i.e. contains valid data) before using it.
add a comment |
The line $a="bar"
ought to give you an error message saying
bash: foo=bar: command not found
To set a
to the string bar
, use a="bar"
. Notice that $a
is the value of the variable a
, and that $a="bar"
is nonsensical.
If you want to change the value each time you run the script, you can do two things (at least).
Make
a
an environment variable. This mean that you seta
outside of the script andexport
it:export a="bar"
Then you run your script as usual (it would need to be modified to not overwrite the value of
a
inherited from the environment first). You could also usea="bar" ./myscript.sh
to set the variable for the script only (i.e., not making it a variable in the calling shell).
Make the script take the value from the command line, so that you call the script like
./myscript.sh "bar"
The script would then do
a="$1"
to set the value of
a
from the command line argument. Here,$1
means "the first command line argument".
Whichever way you go about doing this, you may also want to check that the value "$a"
is sane (i.e. contains valid data) before using it.
The line $a="bar"
ought to give you an error message saying
bash: foo=bar: command not found
To set a
to the string bar
, use a="bar"
. Notice that $a
is the value of the variable a
, and that $a="bar"
is nonsensical.
If you want to change the value each time you run the script, you can do two things (at least).
Make
a
an environment variable. This mean that you seta
outside of the script andexport
it:export a="bar"
Then you run your script as usual (it would need to be modified to not overwrite the value of
a
inherited from the environment first). You could also usea="bar" ./myscript.sh
to set the variable for the script only (i.e., not making it a variable in the calling shell).
Make the script take the value from the command line, so that you call the script like
./myscript.sh "bar"
The script would then do
a="$1"
to set the value of
a
from the command line argument. Here,$1
means "the first command line argument".
Whichever way you go about doing this, you may also want to check that the value "$a"
is sane (i.e. contains valid data) before using it.
edited Feb 1 at 7:41
answered Feb 1 at 7:00
KusalanandaKusalananda
132k17250410
132k17250410
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- 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%2funix.stackexchange.com%2fquestions%2f498068%2fset-variable-name-in-shell-script-permanently%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
Have you tried it? What happened?
– roaima
Feb 1 at 7:19