dos2unix broke my script, but it works in dos format? (unix2dos)












0















My script is designed to first close a screen, for example named 'name1', by sending 'exit' then sending a return key, then open up a new one of the same kind. I do this to prevent a duplicate from running.



However running it only works when it it's in dos format (vim shows [dos] at the bottom while editing), and it also gives those expected $'r': command not found errors.



This is the script (with the last line truncated):



#!/bin/bash
screen -S name1 -X stuff 'exit'`echo -ne '15'`;

sleep 3;

screen -A -m -d -S name1 /dir/to/program -options ...


Here is what happens when I run it when it's in unix format.



$ bash /dir/to/script.sh
No screen session found.


After this, the final screen command is not run, as I check my processes or use screen -r and it's not there.



After using the unix2dos command on the shell script, it has some line errors, but it actually works:



$ bash /steam/gmodsandbox2start.sh
No screen session found.
/steam/gmodsandbox2start.sh: line 2: $'r': command not found
/steam/gmodsandbox2start.sh: line 3: $'r': command not found
/steam/gmodsandbox2start.sh: line 4: $'r': command not found
/steam/gmodsandbox2start.sh: line 5: $'r': command not found


After this, the screen is up and running and I can see it in my processes.



So my question is, what is wrong with my shell script? I would like to have it as a standard unix file and work at the same time. This also is making me genuinely curious as to what may be causing this.









share



























    0















    My script is designed to first close a screen, for example named 'name1', by sending 'exit' then sending a return key, then open up a new one of the same kind. I do this to prevent a duplicate from running.



    However running it only works when it it's in dos format (vim shows [dos] at the bottom while editing), and it also gives those expected $'r': command not found errors.



    This is the script (with the last line truncated):



    #!/bin/bash
    screen -S name1 -X stuff 'exit'`echo -ne '15'`;

    sleep 3;

    screen -A -m -d -S name1 /dir/to/program -options ...


    Here is what happens when I run it when it's in unix format.



    $ bash /dir/to/script.sh
    No screen session found.


    After this, the final screen command is not run, as I check my processes or use screen -r and it's not there.



    After using the unix2dos command on the shell script, it has some line errors, but it actually works:



    $ bash /steam/gmodsandbox2start.sh
    No screen session found.
    /steam/gmodsandbox2start.sh: line 2: $'r': command not found
    /steam/gmodsandbox2start.sh: line 3: $'r': command not found
    /steam/gmodsandbox2start.sh: line 4: $'r': command not found
    /steam/gmodsandbox2start.sh: line 5: $'r': command not found


    After this, the screen is up and running and I can see it in my processes.



    So my question is, what is wrong with my shell script? I would like to have it as a standard unix file and work at the same time. This also is making me genuinely curious as to what may be causing this.









    share

























      0












      0








      0








      My script is designed to first close a screen, for example named 'name1', by sending 'exit' then sending a return key, then open up a new one of the same kind. I do this to prevent a duplicate from running.



      However running it only works when it it's in dos format (vim shows [dos] at the bottom while editing), and it also gives those expected $'r': command not found errors.



      This is the script (with the last line truncated):



      #!/bin/bash
      screen -S name1 -X stuff 'exit'`echo -ne '15'`;

      sleep 3;

      screen -A -m -d -S name1 /dir/to/program -options ...


      Here is what happens when I run it when it's in unix format.



      $ bash /dir/to/script.sh
      No screen session found.


      After this, the final screen command is not run, as I check my processes or use screen -r and it's not there.



      After using the unix2dos command on the shell script, it has some line errors, but it actually works:



      $ bash /steam/gmodsandbox2start.sh
      No screen session found.
      /steam/gmodsandbox2start.sh: line 2: $'r': command not found
      /steam/gmodsandbox2start.sh: line 3: $'r': command not found
      /steam/gmodsandbox2start.sh: line 4: $'r': command not found
      /steam/gmodsandbox2start.sh: line 5: $'r': command not found


      After this, the screen is up and running and I can see it in my processes.



      So my question is, what is wrong with my shell script? I would like to have it as a standard unix file and work at the same time. This also is making me genuinely curious as to what may be causing this.









      share














      My script is designed to first close a screen, for example named 'name1', by sending 'exit' then sending a return key, then open up a new one of the same kind. I do this to prevent a duplicate from running.



      However running it only works when it it's in dos format (vim shows [dos] at the bottom while editing), and it also gives those expected $'r': command not found errors.



      This is the script (with the last line truncated):



      #!/bin/bash
      screen -S name1 -X stuff 'exit'`echo -ne '15'`;

      sleep 3;

      screen -A -m -d -S name1 /dir/to/program -options ...


      Here is what happens when I run it when it's in unix format.



      $ bash /dir/to/script.sh
      No screen session found.


      After this, the final screen command is not run, as I check my processes or use screen -r and it's not there.



      After using the unix2dos command on the shell script, it has some line errors, but it actually works:



      $ bash /steam/gmodsandbox2start.sh
      No screen session found.
      /steam/gmodsandbox2start.sh: line 2: $'r': command not found
      /steam/gmodsandbox2start.sh: line 3: $'r': command not found
      /steam/gmodsandbox2start.sh: line 4: $'r': command not found
      /steam/gmodsandbox2start.sh: line 5: $'r': command not found


      After this, the screen is up and running and I can see it in my processes.



      So my question is, what is wrong with my shell script? I would like to have it as a standard unix file and work at the same time. This also is making me genuinely curious as to what may be causing this.







      shell-script gnu-screen error-handling





      share












      share










      share



      share










      asked 9 mins ago









      APNxRPG24APNxRPG24

      62




      62






















          0






          active

          oldest

          votes











          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%2f494063%2fdos2unix-broke-my-script-but-it-works-in-dos-format-unix2dos%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















          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%2f494063%2fdos2unix-broke-my-script-but-it-works-in-dos-format-unix2dos%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

          Accessing regular linux commands in Huawei's Dopra Linux

          Can't connect RFCOMM socket: Host is down

          Kernel panic - not syncing: Fatal Exception in Interrupt