Why does echo -e “n” give me two blank lines instead of one?












0















Let's say there's a line "aaaa" in file.txt, and I want to add ONLY ONE blank line after it, and then add a line of text after the blank line.

I did:

echo -e "n" >> file.txt

echo "bbbb" >> file.txt

And then I saw TWO blank lines between aaaa and bbbb

When I use only echo "bbbb" >> file.txt then there's no blank line between the two text line.

Why does this happen, and how do I get rid of it?









share



























    0















    Let's say there's a line "aaaa" in file.txt, and I want to add ONLY ONE blank line after it, and then add a line of text after the blank line.

    I did:

    echo -e "n" >> file.txt

    echo "bbbb" >> file.txt

    And then I saw TWO blank lines between aaaa and bbbb

    When I use only echo "bbbb" >> file.txt then there's no blank line between the two text line.

    Why does this happen, and how do I get rid of it?









    share

























      0












      0








      0








      Let's say there's a line "aaaa" in file.txt, and I want to add ONLY ONE blank line after it, and then add a line of text after the blank line.

      I did:

      echo -e "n" >> file.txt

      echo "bbbb" >> file.txt

      And then I saw TWO blank lines between aaaa and bbbb

      When I use only echo "bbbb" >> file.txt then there's no blank line between the two text line.

      Why does this happen, and how do I get rid of it?









      share














      Let's say there's a line "aaaa" in file.txt, and I want to add ONLY ONE blank line after it, and then add a line of text after the blank line.

      I did:

      echo -e "n" >> file.txt

      echo "bbbb" >> file.txt

      And then I saw TWO blank lines between aaaa and bbbb

      When I use only echo "bbbb" >> file.txt then there's no blank line between the two text line.

      Why does this happen, and how do I get rid of it?







      bash text-processing text-formatting





      share












      share










      share



      share










      asked 6 mins ago









      OhLookOhLook

      1265




      1265






















          1 Answer
          1






          active

          oldest

          votes


















          0














          With



          echo "string"


          you get string and a newline at the end.



          Therefore, with



          echo -e "n"


          you will get your newline, and a newline at the end.



          If you don't want the extra newline, use echo with its -n option.



          From help echo in bash:



          Options:
          -n do not append a newline
          -e enable interpretation of the following backslash escapes


          If you want something that is portable to other shells besides bash, use printf instead:



          printf 'n' >>file.txt
          printf 'bbbbn' >>file.txt


          Or, another way of doing those two statements with a single redirection:



          {
          printf 'n'
          printf 'bbbbn'
          } >>file.txt


          Or simply



          printf 'nbbbbn' >>file.txt




          share























            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%2f503487%2fwhy-does-echo-e-n-give-me-two-blank-lines-instead-of-one%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









            0














            With



            echo "string"


            you get string and a newline at the end.



            Therefore, with



            echo -e "n"


            you will get your newline, and a newline at the end.



            If you don't want the extra newline, use echo with its -n option.



            From help echo in bash:



            Options:
            -n do not append a newline
            -e enable interpretation of the following backslash escapes


            If you want something that is portable to other shells besides bash, use printf instead:



            printf 'n' >>file.txt
            printf 'bbbbn' >>file.txt


            Or, another way of doing those two statements with a single redirection:



            {
            printf 'n'
            printf 'bbbbn'
            } >>file.txt


            Or simply



            printf 'nbbbbn' >>file.txt




            share




























              0














              With



              echo "string"


              you get string and a newline at the end.



              Therefore, with



              echo -e "n"


              you will get your newline, and a newline at the end.



              If you don't want the extra newline, use echo with its -n option.



              From help echo in bash:



              Options:
              -n do not append a newline
              -e enable interpretation of the following backslash escapes


              If you want something that is portable to other shells besides bash, use printf instead:



              printf 'n' >>file.txt
              printf 'bbbbn' >>file.txt


              Or, another way of doing those two statements with a single redirection:



              {
              printf 'n'
              printf 'bbbbn'
              } >>file.txt


              Or simply



              printf 'nbbbbn' >>file.txt




              share


























                0












                0








                0







                With



                echo "string"


                you get string and a newline at the end.



                Therefore, with



                echo -e "n"


                you will get your newline, and a newline at the end.



                If you don't want the extra newline, use echo with its -n option.



                From help echo in bash:



                Options:
                -n do not append a newline
                -e enable interpretation of the following backslash escapes


                If you want something that is portable to other shells besides bash, use printf instead:



                printf 'n' >>file.txt
                printf 'bbbbn' >>file.txt


                Or, another way of doing those two statements with a single redirection:



                {
                printf 'n'
                printf 'bbbbn'
                } >>file.txt


                Or simply



                printf 'nbbbbn' >>file.txt




                share













                With



                echo "string"


                you get string and a newline at the end.



                Therefore, with



                echo -e "n"


                you will get your newline, and a newline at the end.



                If you don't want the extra newline, use echo with its -n option.



                From help echo in bash:



                Options:
                -n do not append a newline
                -e enable interpretation of the following backslash escapes


                If you want something that is portable to other shells besides bash, use printf instead:



                printf 'n' >>file.txt
                printf 'bbbbn' >>file.txt


                Or, another way of doing those two statements with a single redirection:



                {
                printf 'n'
                printf 'bbbbn'
                } >>file.txt


                Or simply



                printf 'nbbbbn' >>file.txt





                share











                share


                share










                answered 4 mins ago









                KusalanandaKusalananda

                133k17253416




                133k17253416






























                    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%2f503487%2fwhy-does-echo-e-n-give-me-two-blank-lines-instead-of-one%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

                    CARDNET

                    Boot-repair Failure: Unable to locate package grub-common:i386

                    濃尾地震