Why double double quotes make string run as function?











up vote
-1
down vote

favorite












A simple function receive two arguments and add and ,then print them.



function myprint(){ echo "$1 and $2";}


It works.



myprint  xx  yy
xx and yy


It is a string,bash parse it separately.



"myprint  xx  yy"
bash: myprint xx yy: command not found


Why double double quotes make string run as function?



""myprint  xx  yy""
xx and yy









share|improve this question


























    up vote
    -1
    down vote

    favorite












    A simple function receive two arguments and add and ,then print them.



    function myprint(){ echo "$1 and $2";}


    It works.



    myprint  xx  yy
    xx and yy


    It is a string,bash parse it separately.



    "myprint  xx  yy"
    bash: myprint xx yy: command not found


    Why double double quotes make string run as function?



    ""myprint  xx  yy""
    xx and yy









    share|improve this question
























      up vote
      -1
      down vote

      favorite









      up vote
      -1
      down vote

      favorite











      A simple function receive two arguments and add and ,then print them.



      function myprint(){ echo "$1 and $2";}


      It works.



      myprint  xx  yy
      xx and yy


      It is a string,bash parse it separately.



      "myprint  xx  yy"
      bash: myprint xx yy: command not found


      Why double double quotes make string run as function?



      ""myprint  xx  yy""
      xx and yy









      share|improve this question













      A simple function receive two arguments and add and ,then print them.



      function myprint(){ echo "$1 and $2";}


      It works.



      myprint  xx  yy
      xx and yy


      It is a string,bash parse it separately.



      "myprint  xx  yy"
      bash: myprint xx yy: command not found


      Why double double quotes make string run as function?



      ""myprint  xx  yy""
      xx and yy






      bash smart-quotes






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 18 at 12:24









      scrapy

      1885




      1885






















          1 Answer
          1






          active

          oldest

          votes

















          up vote
          3
          down vote



          accepted










          Your "double double quotes" are in fact not nested. Two times a double quote is opened and closed right away.



          ""myprint  xx  yy""
          ^^ this is one pair of quotes with empty content
          ^^ this is anther pair with empty content
          ^^^^^^^^^^^^^^^ this is not quoted at all


          In effect ""myprint is the command named: the empty string concatenated with "myprint", this resolves to the myprint function; and the last argument is the string "yy" concatenated with the empty string.



          So you get unquoted myprint xx yy. The whole original command behaves as such.






          share|improve this answer























            Your Answer








            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "3"
            };
            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',
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            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%2fsuperuser.com%2fquestions%2f1376433%2fwhy-double-double-quotes-make-string-run-as-function%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








            up vote
            3
            down vote



            accepted










            Your "double double quotes" are in fact not nested. Two times a double quote is opened and closed right away.



            ""myprint  xx  yy""
            ^^ this is one pair of quotes with empty content
            ^^ this is anther pair with empty content
            ^^^^^^^^^^^^^^^ this is not quoted at all


            In effect ""myprint is the command named: the empty string concatenated with "myprint", this resolves to the myprint function; and the last argument is the string "yy" concatenated with the empty string.



            So you get unquoted myprint xx yy. The whole original command behaves as such.






            share|improve this answer



























              up vote
              3
              down vote



              accepted










              Your "double double quotes" are in fact not nested. Two times a double quote is opened and closed right away.



              ""myprint  xx  yy""
              ^^ this is one pair of quotes with empty content
              ^^ this is anther pair with empty content
              ^^^^^^^^^^^^^^^ this is not quoted at all


              In effect ""myprint is the command named: the empty string concatenated with "myprint", this resolves to the myprint function; and the last argument is the string "yy" concatenated with the empty string.



              So you get unquoted myprint xx yy. The whole original command behaves as such.






              share|improve this answer

























                up vote
                3
                down vote



                accepted







                up vote
                3
                down vote



                accepted






                Your "double double quotes" are in fact not nested. Two times a double quote is opened and closed right away.



                ""myprint  xx  yy""
                ^^ this is one pair of quotes with empty content
                ^^ this is anther pair with empty content
                ^^^^^^^^^^^^^^^ this is not quoted at all


                In effect ""myprint is the command named: the empty string concatenated with "myprint", this resolves to the myprint function; and the last argument is the string "yy" concatenated with the empty string.



                So you get unquoted myprint xx yy. The whole original command behaves as such.






                share|improve this answer














                Your "double double quotes" are in fact not nested. Two times a double quote is opened and closed right away.



                ""myprint  xx  yy""
                ^^ this is one pair of quotes with empty content
                ^^ this is anther pair with empty content
                ^^^^^^^^^^^^^^^ this is not quoted at all


                In effect ""myprint is the command named: the empty string concatenated with "myprint", this resolves to the myprint function; and the last argument is the string "yy" concatenated with the empty string.



                So you get unquoted myprint xx yy. The whole original command behaves as such.







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Nov 18 at 14:47


























                community wiki





                2 revs
                Kamil Maciorowski































                     

                    draft saved


                    draft discarded



















































                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1376433%2fwhy-double-double-quotes-make-string-run-as-function%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

                    Plaza Victoria

                    In PowerPoint, is there a keyboard shortcut for bulleted / numbered list?

                    How to put 3 figures in Latex with 2 figures side by side and 1 below these side by side images but in...