Set Variable Name in shell script permanently

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP












-1















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?










share|improve this question
























  • Have you tried it? What happened?

    – roaima
    Feb 1 at 7:19















-1















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?










share|improve this question
























  • Have you tried it? What happened?

    – roaima
    Feb 1 at 7:19













-1












-1








-1








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?










share|improve this question
















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








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

















  • 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










1 Answer
1






active

oldest

votes


















2














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).




  1. Make a an environment variable. This mean that you set a outside of the script and export 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 use



    a="bar" ./myscript.sh


    to set the variable for the script only (i.e., not making it a variable in the calling shell).




  2. 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.






share|improve this answer
























    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
    );



    );













    draft saved

    draft discarded


















    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









    2














    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).




    1. Make a an environment variable. This mean that you set a outside of the script and export 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 use



      a="bar" ./myscript.sh


      to set the variable for the script only (i.e., not making it a variable in the calling shell).




    2. 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.






    share|improve this answer





























      2














      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).




      1. Make a an environment variable. This mean that you set a outside of the script and export 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 use



        a="bar" ./myscript.sh


        to set the variable for the script only (i.e., not making it a variable in the calling shell).




      2. 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.






      share|improve this answer



























        2












        2








        2







        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).




        1. Make a an environment variable. This mean that you set a outside of the script and export 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 use



          a="bar" ./myscript.sh


          to set the variable for the script only (i.e., not making it a variable in the calling shell).




        2. 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.






        share|improve this answer















        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).




        1. Make a an environment variable. This mean that you set a outside of the script and export 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 use



          a="bar" ./myscript.sh


          to set the variable for the script only (i.e., not making it a variable in the calling shell).




        2. 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.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Feb 1 at 7:41

























        answered Feb 1 at 7:00









        KusalanandaKusalananda

        132k17250410




        132k17250410



























            draft saved

            draft discarded
















































            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.




            draft saved


            draft discarded














            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





















































            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






            Popular posts from this blog

            How to check contact read email or not when send email to Individual?

            Displaying single band from multi-band raster using QGIS

            How many registers does an x86_64 CPU actually have?