Why am I no more able to change the environment variable $USERNAME on macOS?












1















WHAT I WANT TO DO



$ echo $USERNAME
myusername
$ export USERNAME=newvalue
$ echo $USERNAME
newvalue


WHAT IS HAPPENING



$ echo $USERNAME
myusername
$ export USERNAME=newvalue
$ echo $USERNAME
myusername


WHAT I TRIED




  • I tried to use: sudo ...;

  • I tried to use: unset USERNAME.


USEFUL NOTES




  • OS: macOS Mojave 10.14


  • Direnv: https://github.com/direnv/direnv


  • I am using zsh



WHAT I DID BEFORE THE ISSUE



I was able to change my environment variable several times using direnv (https://github.com/direnv/direnv), and everything was working well.



I was able to set local env variables in .envrc.
Then, I encountered this issue...





SOLUTION



https://unix.stackexchange.com/questions/483469/cannot-change-the-environment-variable










share|improve this question





























    1















    WHAT I WANT TO DO



    $ echo $USERNAME
    myusername
    $ export USERNAME=newvalue
    $ echo $USERNAME
    newvalue


    WHAT IS HAPPENING



    $ echo $USERNAME
    myusername
    $ export USERNAME=newvalue
    $ echo $USERNAME
    myusername


    WHAT I TRIED




    • I tried to use: sudo ...;

    • I tried to use: unset USERNAME.


    USEFUL NOTES




    • OS: macOS Mojave 10.14


    • Direnv: https://github.com/direnv/direnv


    • I am using zsh



    WHAT I DID BEFORE THE ISSUE



    I was able to change my environment variable several times using direnv (https://github.com/direnv/direnv), and everything was working well.



    I was able to set local env variables in .envrc.
    Then, I encountered this issue...





    SOLUTION



    https://unix.stackexchange.com/questions/483469/cannot-change-the-environment-variable










    share|improve this question



























      1












      1








      1








      WHAT I WANT TO DO



      $ echo $USERNAME
      myusername
      $ export USERNAME=newvalue
      $ echo $USERNAME
      newvalue


      WHAT IS HAPPENING



      $ echo $USERNAME
      myusername
      $ export USERNAME=newvalue
      $ echo $USERNAME
      myusername


      WHAT I TRIED




      • I tried to use: sudo ...;

      • I tried to use: unset USERNAME.


      USEFUL NOTES




      • OS: macOS Mojave 10.14


      • Direnv: https://github.com/direnv/direnv


      • I am using zsh



      WHAT I DID BEFORE THE ISSUE



      I was able to change my environment variable several times using direnv (https://github.com/direnv/direnv), and everything was working well.



      I was able to set local env variables in .envrc.
      Then, I encountered this issue...





      SOLUTION



      https://unix.stackexchange.com/questions/483469/cannot-change-the-environment-variable










      share|improve this question
















      WHAT I WANT TO DO



      $ echo $USERNAME
      myusername
      $ export USERNAME=newvalue
      $ echo $USERNAME
      newvalue


      WHAT IS HAPPENING



      $ echo $USERNAME
      myusername
      $ export USERNAME=newvalue
      $ echo $USERNAME
      myusername


      WHAT I TRIED




      • I tried to use: sudo ...;

      • I tried to use: unset USERNAME.


      USEFUL NOTES




      • OS: macOS Mojave 10.14


      • Direnv: https://github.com/direnv/direnv


      • I am using zsh



      WHAT I DID BEFORE THE ISSUE



      I was able to change my environment variable several times using direnv (https://github.com/direnv/direnv), and everything was working well.



      I was able to set local env variables in .envrc.
      Then, I encountered this issue...





      SOLUTION



      https://unix.stackexchange.com/questions/483469/cannot-change-the-environment-variable







      macos environment-variables zsh iterm2 direnv






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Dec 1 '18 at 16:52







      Riccardo Persiani

















      asked Nov 21 '18 at 18:18









      Riccardo PersianiRiccardo Persiani

      2751215




      2751215
























          1 Answer
          1






          active

          oldest

          votes


















          3














          In zsh the USERNAME var is magical. It is not a normal exported env var. From the man page:



             USERNAME <S>
          The username corresponding to the real user ID of the shell process. If you
          have sufficient privileges, you may change the username (and also the user
          ID and group ID) of the shell by assigning to this parameter. Also (assum-
          ing sufficient privileges), you may start a single command under a different
          username (and user ID and group ID) by `(USERNAME=username; command)'


          In other shells, like bash and fish, this is not a special var and you can set it just like any other env var:



          bash$ echo $USERNAME

          bash$ export USERNAME=wtf
          bash$ echo $USERNAME
          wtf





          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%2f53418303%2fwhy-am-i-no-more-able-to-change-the-environment-variable-username-on-macos%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









            3














            In zsh the USERNAME var is magical. It is not a normal exported env var. From the man page:



               USERNAME <S>
            The username corresponding to the real user ID of the shell process. If you
            have sufficient privileges, you may change the username (and also the user
            ID and group ID) of the shell by assigning to this parameter. Also (assum-
            ing sufficient privileges), you may start a single command under a different
            username (and user ID and group ID) by `(USERNAME=username; command)'


            In other shells, like bash and fish, this is not a special var and you can set it just like any other env var:



            bash$ echo $USERNAME

            bash$ export USERNAME=wtf
            bash$ echo $USERNAME
            wtf





            share|improve this answer




























              3














              In zsh the USERNAME var is magical. It is not a normal exported env var. From the man page:



                 USERNAME <S>
              The username corresponding to the real user ID of the shell process. If you
              have sufficient privileges, you may change the username (and also the user
              ID and group ID) of the shell by assigning to this parameter. Also (assum-
              ing sufficient privileges), you may start a single command under a different
              username (and user ID and group ID) by `(USERNAME=username; command)'


              In other shells, like bash and fish, this is not a special var and you can set it just like any other env var:



              bash$ echo $USERNAME

              bash$ export USERNAME=wtf
              bash$ echo $USERNAME
              wtf





              share|improve this answer


























                3












                3








                3







                In zsh the USERNAME var is magical. It is not a normal exported env var. From the man page:



                   USERNAME <S>
                The username corresponding to the real user ID of the shell process. If you
                have sufficient privileges, you may change the username (and also the user
                ID and group ID) of the shell by assigning to this parameter. Also (assum-
                ing sufficient privileges), you may start a single command under a different
                username (and user ID and group ID) by `(USERNAME=username; command)'


                In other shells, like bash and fish, this is not a special var and you can set it just like any other env var:



                bash$ echo $USERNAME

                bash$ export USERNAME=wtf
                bash$ echo $USERNAME
                wtf





                share|improve this answer













                In zsh the USERNAME var is magical. It is not a normal exported env var. From the man page:



                   USERNAME <S>
                The username corresponding to the real user ID of the shell process. If you
                have sufficient privileges, you may change the username (and also the user
                ID and group ID) of the shell by assigning to this parameter. Also (assum-
                ing sufficient privileges), you may start a single command under a different
                username (and user ID and group ID) by `(USERNAME=username; command)'


                In other shells, like bash and fish, this is not a special var and you can set it just like any other env var:



                bash$ echo $USERNAME

                bash$ export USERNAME=wtf
                bash$ echo $USERNAME
                wtf






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 30 '18 at 21:46









                Kurtis RaderKurtis Rader

                3,379610




                3,379610
































                    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%2f53418303%2fwhy-am-i-no-more-able-to-change-the-environment-variable-username-on-macos%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

                    Guess what letter conforming each word

                    Port of Spain

                    Run scheduled task as local user group (not BUILTIN)