What does bashrc PS1 check [ “$PS1” = “\s-\v\$ ” ] mean?












1















In /etc/bashrc file in Fedora/Red Hat I see following line:



[ "$PS1" = "\s-\v\$ " ] && PS1="[u@h W]\$ "


What is the check being done in [ "$PS1" = "\s-\v\$ " ] and why is PS1 set only if the test succeeds?










share|improve this question



























    1















    In /etc/bashrc file in Fedora/Red Hat I see following line:



    [ "$PS1" = "\s-\v\$ " ] && PS1="[u@h W]\$ "


    What is the check being done in [ "$PS1" = "\s-\v\$ " ] and why is PS1 set only if the test succeeds?










    share|improve this question

























      1












      1








      1








      In /etc/bashrc file in Fedora/Red Hat I see following line:



      [ "$PS1" = "\s-\v\$ " ] && PS1="[u@h W]\$ "


      What is the check being done in [ "$PS1" = "\s-\v\$ " ] and why is PS1 set only if the test succeeds?










      share|improve this question














      In /etc/bashrc file in Fedora/Red Hat I see following line:



      [ "$PS1" = "\s-\v\$ " ] && PS1="[u@h W]\$ "


      What is the check being done in [ "$PS1" = "\s-\v\$ " ] and why is PS1 set only if the test succeeds?







      bash bashrc






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Aug 10 '17 at 10:01









      AkilanAkilan

      1465




      1465






















          3 Answers
          3






          active

          oldest

          votes


















          2














          (I debated whether to make this an answer since it's such a swag but here ya go...)



          Just a theory but the first form (e.g. bash-3.2.1$) looks like the prompt I often see when logged in as root or other "non-user" account . The second, overriding form (e.g. [joeblow@myhost /tmp]$) is more user-centric. So maybe this is to detect when going from a system account to user account...then, and only then, change to a more appropriate prompt. Otherwise assume someone would want to preserve the current prompt.






          share|improve this answer

































            1














            The check being done is a string comparison =. It's comparing the value of $PS1 to the string s-v$, where the backslashes need to be escaped in the string so that they get compared to actual backslashes instead of attempting to escape the following character.



            The && syntax is the part that sets PS1 only if the preceding test succeeds.



            The overall logic here is apparently to update PS1 only if it was previously set to a specific value.






            share|improve this answer
























            • I understand that it is string comparison and && being used as a test. My question rather was about significance of that string and "why is PS1 set only if the test succeeds".

              – Akilan
              Aug 10 '17 at 11:45











            • The poster already acknowledged that && was testing for the success of the previous command and so the answer doesn't give the required response,

              – Raman Sailopal
              Aug 10 '17 at 12:52













            • I think you'd have to ask the maintainers of that file to ask why it is set that way.

              – Jeff Schaller
              Aug 10 '17 at 22:49



















            0














            I believe the comparison is checking to see if the shell is an interactive session. s-v$ as a $PS1 var evaluates to bash-5.0$ on my machine. See the differences here:



            Jonathans-Air:~ lirum$ bash
            bash-5.0$ echo "$PS1"
            s-v$
            bash-5.0$ exit
            exit
            Jonathans-Air:~ lirum$ echo "$PS1"
            h:W u$





            share|improve this answer








            New contributor




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




















              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%2f385181%2fwhat-does-bashrc-ps1-check-ps1-s-v-mean%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              3 Answers
              3






              active

              oldest

              votes








              3 Answers
              3






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              2














              (I debated whether to make this an answer since it's such a swag but here ya go...)



              Just a theory but the first form (e.g. bash-3.2.1$) looks like the prompt I often see when logged in as root or other "non-user" account . The second, overriding form (e.g. [joeblow@myhost /tmp]$) is more user-centric. So maybe this is to detect when going from a system account to user account...then, and only then, change to a more appropriate prompt. Otherwise assume someone would want to preserve the current prompt.






              share|improve this answer






























                2














                (I debated whether to make this an answer since it's such a swag but here ya go...)



                Just a theory but the first form (e.g. bash-3.2.1$) looks like the prompt I often see when logged in as root or other "non-user" account . The second, overriding form (e.g. [joeblow@myhost /tmp]$) is more user-centric. So maybe this is to detect when going from a system account to user account...then, and only then, change to a more appropriate prompt. Otherwise assume someone would want to preserve the current prompt.






                share|improve this answer




























                  2












                  2








                  2







                  (I debated whether to make this an answer since it's such a swag but here ya go...)



                  Just a theory but the first form (e.g. bash-3.2.1$) looks like the prompt I often see when logged in as root or other "non-user" account . The second, overriding form (e.g. [joeblow@myhost /tmp]$) is more user-centric. So maybe this is to detect when going from a system account to user account...then, and only then, change to a more appropriate prompt. Otherwise assume someone would want to preserve the current prompt.






                  share|improve this answer















                  (I debated whether to make this an answer since it's such a swag but here ya go...)



                  Just a theory but the first form (e.g. bash-3.2.1$) looks like the prompt I often see when logged in as root or other "non-user" account . The second, overriding form (e.g. [joeblow@myhost /tmp]$) is more user-centric. So maybe this is to detect when going from a system account to user account...then, and only then, change to a more appropriate prompt. Otherwise assume someone would want to preserve the current prompt.







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited Aug 10 '17 at 14:17

























                  answered Aug 10 '17 at 14:12









                  B LayerB Layer

                  4,0641625




                  4,0641625

























                      1














                      The check being done is a string comparison =. It's comparing the value of $PS1 to the string s-v$, where the backslashes need to be escaped in the string so that they get compared to actual backslashes instead of attempting to escape the following character.



                      The && syntax is the part that sets PS1 only if the preceding test succeeds.



                      The overall logic here is apparently to update PS1 only if it was previously set to a specific value.






                      share|improve this answer
























                      • I understand that it is string comparison and && being used as a test. My question rather was about significance of that string and "why is PS1 set only if the test succeeds".

                        – Akilan
                        Aug 10 '17 at 11:45











                      • The poster already acknowledged that && was testing for the success of the previous command and so the answer doesn't give the required response,

                        – Raman Sailopal
                        Aug 10 '17 at 12:52













                      • I think you'd have to ask the maintainers of that file to ask why it is set that way.

                        – Jeff Schaller
                        Aug 10 '17 at 22:49
















                      1














                      The check being done is a string comparison =. It's comparing the value of $PS1 to the string s-v$, where the backslashes need to be escaped in the string so that they get compared to actual backslashes instead of attempting to escape the following character.



                      The && syntax is the part that sets PS1 only if the preceding test succeeds.



                      The overall logic here is apparently to update PS1 only if it was previously set to a specific value.






                      share|improve this answer
























                      • I understand that it is string comparison and && being used as a test. My question rather was about significance of that string and "why is PS1 set only if the test succeeds".

                        – Akilan
                        Aug 10 '17 at 11:45











                      • The poster already acknowledged that && was testing for the success of the previous command and so the answer doesn't give the required response,

                        – Raman Sailopal
                        Aug 10 '17 at 12:52













                      • I think you'd have to ask the maintainers of that file to ask why it is set that way.

                        – Jeff Schaller
                        Aug 10 '17 at 22:49














                      1












                      1








                      1







                      The check being done is a string comparison =. It's comparing the value of $PS1 to the string s-v$, where the backslashes need to be escaped in the string so that they get compared to actual backslashes instead of attempting to escape the following character.



                      The && syntax is the part that sets PS1 only if the preceding test succeeds.



                      The overall logic here is apparently to update PS1 only if it was previously set to a specific value.






                      share|improve this answer













                      The check being done is a string comparison =. It's comparing the value of $PS1 to the string s-v$, where the backslashes need to be escaped in the string so that they get compared to actual backslashes instead of attempting to escape the following character.



                      The && syntax is the part that sets PS1 only if the preceding test succeeds.



                      The overall logic here is apparently to update PS1 only if it was previously set to a specific value.







                      share|improve this answer












                      share|improve this answer



                      share|improve this answer










                      answered Aug 10 '17 at 11:16









                      Jeff SchallerJeff Schaller

                      43.4k1160140




                      43.4k1160140













                      • I understand that it is string comparison and && being used as a test. My question rather was about significance of that string and "why is PS1 set only if the test succeeds".

                        – Akilan
                        Aug 10 '17 at 11:45











                      • The poster already acknowledged that && was testing for the success of the previous command and so the answer doesn't give the required response,

                        – Raman Sailopal
                        Aug 10 '17 at 12:52













                      • I think you'd have to ask the maintainers of that file to ask why it is set that way.

                        – Jeff Schaller
                        Aug 10 '17 at 22:49



















                      • I understand that it is string comparison and && being used as a test. My question rather was about significance of that string and "why is PS1 set only if the test succeeds".

                        – Akilan
                        Aug 10 '17 at 11:45











                      • The poster already acknowledged that && was testing for the success of the previous command and so the answer doesn't give the required response,

                        – Raman Sailopal
                        Aug 10 '17 at 12:52













                      • I think you'd have to ask the maintainers of that file to ask why it is set that way.

                        – Jeff Schaller
                        Aug 10 '17 at 22:49

















                      I understand that it is string comparison and && being used as a test. My question rather was about significance of that string and "why is PS1 set only if the test succeeds".

                      – Akilan
                      Aug 10 '17 at 11:45





                      I understand that it is string comparison and && being used as a test. My question rather was about significance of that string and "why is PS1 set only if the test succeeds".

                      – Akilan
                      Aug 10 '17 at 11:45













                      The poster already acknowledged that && was testing for the success of the previous command and so the answer doesn't give the required response,

                      – Raman Sailopal
                      Aug 10 '17 at 12:52







                      The poster already acknowledged that && was testing for the success of the previous command and so the answer doesn't give the required response,

                      – Raman Sailopal
                      Aug 10 '17 at 12:52















                      I think you'd have to ask the maintainers of that file to ask why it is set that way.

                      – Jeff Schaller
                      Aug 10 '17 at 22:49





                      I think you'd have to ask the maintainers of that file to ask why it is set that way.

                      – Jeff Schaller
                      Aug 10 '17 at 22:49











                      0














                      I believe the comparison is checking to see if the shell is an interactive session. s-v$ as a $PS1 var evaluates to bash-5.0$ on my machine. See the differences here:



                      Jonathans-Air:~ lirum$ bash
                      bash-5.0$ echo "$PS1"
                      s-v$
                      bash-5.0$ exit
                      exit
                      Jonathans-Air:~ lirum$ echo "$PS1"
                      h:W u$





                      share|improve this answer








                      New contributor




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

























                        0














                        I believe the comparison is checking to see if the shell is an interactive session. s-v$ as a $PS1 var evaluates to bash-5.0$ on my machine. See the differences here:



                        Jonathans-Air:~ lirum$ bash
                        bash-5.0$ echo "$PS1"
                        s-v$
                        bash-5.0$ exit
                        exit
                        Jonathans-Air:~ lirum$ echo "$PS1"
                        h:W u$





                        share|improve this answer








                        New contributor




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























                          0












                          0








                          0







                          I believe the comparison is checking to see if the shell is an interactive session. s-v$ as a $PS1 var evaluates to bash-5.0$ on my machine. See the differences here:



                          Jonathans-Air:~ lirum$ bash
                          bash-5.0$ echo "$PS1"
                          s-v$
                          bash-5.0$ exit
                          exit
                          Jonathans-Air:~ lirum$ echo "$PS1"
                          h:W u$





                          share|improve this answer








                          New contributor




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










                          I believe the comparison is checking to see if the shell is an interactive session. s-v$ as a $PS1 var evaluates to bash-5.0$ on my machine. See the differences here:



                          Jonathans-Air:~ lirum$ bash
                          bash-5.0$ echo "$PS1"
                          s-v$
                          bash-5.0$ exit
                          exit
                          Jonathans-Air:~ lirum$ echo "$PS1"
                          h:W u$






                          share|improve this answer








                          New contributor




                          Lirum 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 answer



                          share|improve this answer






                          New contributor




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









                          answered 1 hour ago









                          LirumLirum

                          11




                          11




                          New contributor




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





                          New contributor





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






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






























                              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%2f385181%2fwhat-does-bashrc-ps1-check-ps1-s-v-mean%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

                              宮崎県

                              濃尾地震

                              シテ島