Unable to execute the If condition in shell script












-2















I need to check if container is already present with specific name.
Using if statement for same, however container is present with same name but i am not sure why if statement is not running successfully.



if [`echo password | sudo -S docker ps -all|grep test|cut -d' ' -f1`]
then
statements
else
statements


container with test name is present but its always going inside the else statement. Could you help me on this.










share|improve this question


















  • 3





    Possible duplicate of Why should there be a space after '[' and before ']' in Bash?

    – jww
    Nov 26 '18 at 9:28













  • Also see How to use Shellcheck, How to debug a bash script? (U&L.SE), How to debug a bash script? (SO), How to debug bash script? (AskU), Debugging Bash scripts, etc.

    – jww
    Nov 26 '18 at 9:28
















-2















I need to check if container is already present with specific name.
Using if statement for same, however container is present with same name but i am not sure why if statement is not running successfully.



if [`echo password | sudo -S docker ps -all|grep test|cut -d' ' -f1`]
then
statements
else
statements


container with test name is present but its always going inside the else statement. Could you help me on this.










share|improve this question


















  • 3





    Possible duplicate of Why should there be a space after '[' and before ']' in Bash?

    – jww
    Nov 26 '18 at 9:28













  • Also see How to use Shellcheck, How to debug a bash script? (U&L.SE), How to debug a bash script? (SO), How to debug bash script? (AskU), Debugging Bash scripts, etc.

    – jww
    Nov 26 '18 at 9:28














-2












-2








-2








I need to check if container is already present with specific name.
Using if statement for same, however container is present with same name but i am not sure why if statement is not running successfully.



if [`echo password | sudo -S docker ps -all|grep test|cut -d' ' -f1`]
then
statements
else
statements


container with test name is present but its always going inside the else statement. Could you help me on this.










share|improve this question














I need to check if container is already present with specific name.
Using if statement for same, however container is present with same name but i am not sure why if statement is not running successfully.



if [`echo password | sudo -S docker ps -all|grep test|cut -d' ' -f1`]
then
statements
else
statements


container with test name is present but its always going inside the else statement. Could you help me on this.







linux bash shell shellexecute






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 26 '18 at 7:19









J.vikJ.vik

386




386








  • 3





    Possible duplicate of Why should there be a space after '[' and before ']' in Bash?

    – jww
    Nov 26 '18 at 9:28













  • Also see How to use Shellcheck, How to debug a bash script? (U&L.SE), How to debug a bash script? (SO), How to debug bash script? (AskU), Debugging Bash scripts, etc.

    – jww
    Nov 26 '18 at 9:28














  • 3





    Possible duplicate of Why should there be a space after '[' and before ']' in Bash?

    – jww
    Nov 26 '18 at 9:28













  • Also see How to use Shellcheck, How to debug a bash script? (U&L.SE), How to debug a bash script? (SO), How to debug bash script? (AskU), Debugging Bash scripts, etc.

    – jww
    Nov 26 '18 at 9:28








3




3





Possible duplicate of Why should there be a space after '[' and before ']' in Bash?

– jww
Nov 26 '18 at 9:28







Possible duplicate of Why should there be a space after '[' and before ']' in Bash?

– jww
Nov 26 '18 at 9:28















Also see How to use Shellcheck, How to debug a bash script? (U&L.SE), How to debug a bash script? (SO), How to debug bash script? (AskU), Debugging Bash scripts, etc.

– jww
Nov 26 '18 at 9:28





Also see How to use Shellcheck, How to debug a bash script? (U&L.SE), How to debug a bash script? (SO), How to debug bash script? (AskU), Debugging Bash scripts, etc.

– jww
Nov 26 '18 at 9:28












2 Answers
2






active

oldest

votes


















0














in addition to @ÔHARA Kazutaka information.



-all does not exists, try --all instead.



The --quiet --filter name=test options are going to make docker filters output using the container's name, and make it prints to the standard output the CONTAINER ID if a container exists.



Give a try to this:



container_name=test

container_id=$(echo password | sudo -S docker ps --all --quiet --filter name="${container_name}")

if [ ! -z "${container_id}" ] ; then
printf "%s is the id of the container with name '%s'n" "${container_id}" "${container_name}"
else
printf "no docker container with name '%s' has been found.n" "${container_name}"
fi





share|improve this answer

































    2














    You need blanks between [, ] and `, i.e. :



    if [ `echo password | sudo -S docker ps -all|grep test|cut -d' ' -f1` ]


    Also, you need fi after the last line.






    share|improve this answer
























      Your Answer






      StackExchange.ifUsing("editor", function () {
      StackExchange.using("externalEditor", function () {
      StackExchange.using("snippets", function () {
      StackExchange.snippets.init();
      });
      });
      }, "code-snippets");

      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "1"
      };
      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: 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%2fstackoverflow.com%2fquestions%2f53476313%2funable-to-execute-the-if-condition-in-shell-script%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      0














      in addition to @ÔHARA Kazutaka information.



      -all does not exists, try --all instead.



      The --quiet --filter name=test options are going to make docker filters output using the container's name, and make it prints to the standard output the CONTAINER ID if a container exists.



      Give a try to this:



      container_name=test

      container_id=$(echo password | sudo -S docker ps --all --quiet --filter name="${container_name}")

      if [ ! -z "${container_id}" ] ; then
      printf "%s is the id of the container with name '%s'n" "${container_id}" "${container_name}"
      else
      printf "no docker container with name '%s' has been found.n" "${container_name}"
      fi





      share|improve this answer






























        0














        in addition to @ÔHARA Kazutaka information.



        -all does not exists, try --all instead.



        The --quiet --filter name=test options are going to make docker filters output using the container's name, and make it prints to the standard output the CONTAINER ID if a container exists.



        Give a try to this:



        container_name=test

        container_id=$(echo password | sudo -S docker ps --all --quiet --filter name="${container_name}")

        if [ ! -z "${container_id}" ] ; then
        printf "%s is the id of the container with name '%s'n" "${container_id}" "${container_name}"
        else
        printf "no docker container with name '%s' has been found.n" "${container_name}"
        fi





        share|improve this answer




























          0












          0








          0







          in addition to @ÔHARA Kazutaka information.



          -all does not exists, try --all instead.



          The --quiet --filter name=test options are going to make docker filters output using the container's name, and make it prints to the standard output the CONTAINER ID if a container exists.



          Give a try to this:



          container_name=test

          container_id=$(echo password | sudo -S docker ps --all --quiet --filter name="${container_name}")

          if [ ! -z "${container_id}" ] ; then
          printf "%s is the id of the container with name '%s'n" "${container_id}" "${container_name}"
          else
          printf "no docker container with name '%s' has been found.n" "${container_name}"
          fi





          share|improve this answer















          in addition to @ÔHARA Kazutaka information.



          -all does not exists, try --all instead.



          The --quiet --filter name=test options are going to make docker filters output using the container's name, and make it prints to the standard output the CONTAINER ID if a container exists.



          Give a try to this:



          container_name=test

          container_id=$(echo password | sudo -S docker ps --all --quiet --filter name="${container_name}")

          if [ ! -z "${container_id}" ] ; then
          printf "%s is the id of the container with name '%s'n" "${container_id}" "${container_name}"
          else
          printf "no docker container with name '%s' has been found.n" "${container_name}"
          fi






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Nov 26 '18 at 9:01

























          answered Nov 26 '18 at 8:50









          Jay jargotJay jargot

          1,9821511




          1,9821511

























              2














              You need blanks between [, ] and `, i.e. :



              if [ `echo password | sudo -S docker ps -all|grep test|cut -d' ' -f1` ]


              Also, you need fi after the last line.






              share|improve this answer




























                2














                You need blanks between [, ] and `, i.e. :



                if [ `echo password | sudo -S docker ps -all|grep test|cut -d' ' -f1` ]


                Also, you need fi after the last line.






                share|improve this answer


























                  2












                  2








                  2







                  You need blanks between [, ] and `, i.e. :



                  if [ `echo password | sudo -S docker ps -all|grep test|cut -d' ' -f1` ]


                  Also, you need fi after the last line.






                  share|improve this answer













                  You need blanks between [, ] and `, i.e. :



                  if [ `echo password | sudo -S docker ps -all|grep test|cut -d' ' -f1` ]


                  Also, you need fi after the last line.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 26 '18 at 7:30









                  ŌHARA KazutakaŌHARA Kazutaka

                  767




                  767






























                      draft saved

                      draft discarded




















































                      Thanks for contributing an answer to Stack Overflow!


                      • 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%2fstackoverflow.com%2fquestions%2f53476313%2funable-to-execute-the-if-condition-in-shell-script%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

                      Wiesbaden

                      Marschland

                      Dieringhausen