How do I set a bash variable that contains another variable?












1















I am trying to set the variable service to be the value of



var1=first/second
echo $var1 | cut -d '/' -f 1
var2=$var1 | cut -d '/' -f 1"
echo $var2


The result of echo $var1 | cut -d '/' -f 1 is "first" which is correct. However, I haven't been able to set the result of this to another variable. In the case above, var2 is empty.



What would the correct syntax for line 3 be so that the part of the string before the is returned as the value of var2?










share|improve this question







New contributor




fuzzi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





















  • Possible duplicate of How can I assign the output of a command to a shell variable?

    – G-Man
    1 hour ago











  • See also Storing output of command in shell variable, Calculate variable and output it to another variable, Bash: Assign output of pipe to a variable, setting output of a command to a variable, and more.

    – G-Man
    1 hour ago
















1















I am trying to set the variable service to be the value of



var1=first/second
echo $var1 | cut -d '/' -f 1
var2=$var1 | cut -d '/' -f 1"
echo $var2


The result of echo $var1 | cut -d '/' -f 1 is "first" which is correct. However, I haven't been able to set the result of this to another variable. In the case above, var2 is empty.



What would the correct syntax for line 3 be so that the part of the string before the is returned as the value of var2?










share|improve this question







New contributor




fuzzi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





















  • Possible duplicate of How can I assign the output of a command to a shell variable?

    – G-Man
    1 hour ago











  • See also Storing output of command in shell variable, Calculate variable and output it to another variable, Bash: Assign output of pipe to a variable, setting output of a command to a variable, and more.

    – G-Man
    1 hour ago














1












1








1








I am trying to set the variable service to be the value of



var1=first/second
echo $var1 | cut -d '/' -f 1
var2=$var1 | cut -d '/' -f 1"
echo $var2


The result of echo $var1 | cut -d '/' -f 1 is "first" which is correct. However, I haven't been able to set the result of this to another variable. In the case above, var2 is empty.



What would the correct syntax for line 3 be so that the part of the string before the is returned as the value of var2?










share|improve this question







New contributor




fuzzi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












I am trying to set the variable service to be the value of



var1=first/second
echo $var1 | cut -d '/' -f 1
var2=$var1 | cut -d '/' -f 1"
echo $var2


The result of echo $var1 | cut -d '/' -f 1 is "first" which is correct. However, I haven't been able to set the result of this to another variable. In the case above, var2 is empty.



What would the correct syntax for line 3 be so that the part of the string before the is returned as the value of var2?







bash shell-script






share|improve this question







New contributor




fuzzi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question







New contributor




fuzzi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question






New contributor




fuzzi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 2 hours ago









fuzzifuzzi

64




64




New contributor




fuzzi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





fuzzi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






fuzzi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.













  • Possible duplicate of How can I assign the output of a command to a shell variable?

    – G-Man
    1 hour ago











  • See also Storing output of command in shell variable, Calculate variable and output it to another variable, Bash: Assign output of pipe to a variable, setting output of a command to a variable, and more.

    – G-Man
    1 hour ago



















  • Possible duplicate of How can I assign the output of a command to a shell variable?

    – G-Man
    1 hour ago











  • See also Storing output of command in shell variable, Calculate variable and output it to another variable, Bash: Assign output of pipe to a variable, setting output of a command to a variable, and more.

    – G-Man
    1 hour ago

















Possible duplicate of How can I assign the output of a command to a shell variable?

– G-Man
1 hour ago





Possible duplicate of How can I assign the output of a command to a shell variable?

– G-Man
1 hour ago













See also Storing output of command in shell variable, Calculate variable and output it to another variable, Bash: Assign output of pipe to a variable, setting output of a command to a variable, and more.

– G-Man
1 hour ago





See also Storing output of command in shell variable, Calculate variable and output it to another variable, Bash: Assign output of pipe to a variable, setting output of a command to a variable, and more.

– G-Man
1 hour ago










1 Answer
1






active

oldest

votes


















2














You could use command substitution



var2=$(echo "$var1" | cut -d '/' -f 1)


However in this case it would be better to use the shell's parameter substitution directly:



$ var2=${var1%/*}
$ echo "$var2"
first


(removes the shortest trailing substring matching /*) and



$ var3=${var1#*/}
$ echo "$var3"
second


(removes the shortest leading substring matching */) should you need it as well.






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


    }
    });






    fuzzi is a new contributor. Be nice, and check out our Code of Conduct.










    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f505971%2fhow-do-i-set-a-bash-variable-that-contains-another-variable%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














    You could use command substitution



    var2=$(echo "$var1" | cut -d '/' -f 1)


    However in this case it would be better to use the shell's parameter substitution directly:



    $ var2=${var1%/*}
    $ echo "$var2"
    first


    (removes the shortest trailing substring matching /*) and



    $ var3=${var1#*/}
    $ echo "$var3"
    second


    (removes the shortest leading substring matching */) should you need it as well.






    share|improve this answer




























      2














      You could use command substitution



      var2=$(echo "$var1" | cut -d '/' -f 1)


      However in this case it would be better to use the shell's parameter substitution directly:



      $ var2=${var1%/*}
      $ echo "$var2"
      first


      (removes the shortest trailing substring matching /*) and



      $ var3=${var1#*/}
      $ echo "$var3"
      second


      (removes the shortest leading substring matching */) should you need it as well.






      share|improve this answer


























        2












        2








        2







        You could use command substitution



        var2=$(echo "$var1" | cut -d '/' -f 1)


        However in this case it would be better to use the shell's parameter substitution directly:



        $ var2=${var1%/*}
        $ echo "$var2"
        first


        (removes the shortest trailing substring matching /*) and



        $ var3=${var1#*/}
        $ echo "$var3"
        second


        (removes the shortest leading substring matching */) should you need it as well.






        share|improve this answer













        You could use command substitution



        var2=$(echo "$var1" | cut -d '/' -f 1)


        However in this case it would be better to use the shell's parameter substitution directly:



        $ var2=${var1%/*}
        $ echo "$var2"
        first


        (removes the shortest trailing substring matching /*) and



        $ var3=${var1#*/}
        $ echo "$var3"
        second


        (removes the shortest leading substring matching */) should you need it as well.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered 2 hours ago









        steeldriversteeldriver

        36.8k45287




        36.8k45287






















            fuzzi is a new contributor. Be nice, and check out our Code of Conduct.










            draft saved

            draft discarded


















            fuzzi is a new contributor. Be nice, and check out our Code of Conduct.













            fuzzi is a new contributor. Be nice, and check out our Code of Conduct.












            fuzzi is a new contributor. Be nice, and check out our Code of Conduct.
















            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%2f505971%2fhow-do-i-set-a-bash-variable-that-contains-another-variable%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

            Histoire des bourses de valeurs

            Why is there Russian traffic in my log files?

            Rename multiple files to decrement number in file name?