How can I get colors when executing `bash -c`?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
0
down vote

favorite












No colors are displayed when running bash -c "ls -l" (CentOS 7.2). I have an obscure reason to want to show the colors after all. Can I disable this... color suppression?




For anyone wondering about my obscure use case: I'm running the Parcellite clipboard manager, which supports "actions" in a context menu, and one of the actions I've defined is "Run terminal command" which opens a new terminal and runs a command stored on the clipboard. It is implemented in the following way (so that the command is allowed to contain all special characters except apostrophe):



# Parcellite recognizes %s only once; store in a variable to use twice
CMD='%s' gnome-terminal -e "$SHELL -c 'echo \$ "$CMD"; eval $CMD; exec $SHELL'"
# Or equivalently....
CMD='%s' gnome-terminal -e $SHELL' -c "echo $ "$CMD"; eval $CMD; exec $SHELL"'


Because gnome-terminal can only run a single command and doesn't understand things like &&, I need to call bash -c ($SHELL -c) in order to interpret the command correctly and keep the shell running afterward (and since bash doesn't directly support that I have to also sneak in exec $SHELL at the end.)










share|improve this question







New contributor




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























    up vote
    0
    down vote

    favorite












    No colors are displayed when running bash -c "ls -l" (CentOS 7.2). I have an obscure reason to want to show the colors after all. Can I disable this... color suppression?




    For anyone wondering about my obscure use case: I'm running the Parcellite clipboard manager, which supports "actions" in a context menu, and one of the actions I've defined is "Run terminal command" which opens a new terminal and runs a command stored on the clipboard. It is implemented in the following way (so that the command is allowed to contain all special characters except apostrophe):



    # Parcellite recognizes %s only once; store in a variable to use twice
    CMD='%s' gnome-terminal -e "$SHELL -c 'echo \$ "$CMD"; eval $CMD; exec $SHELL'"
    # Or equivalently....
    CMD='%s' gnome-terminal -e $SHELL' -c "echo $ "$CMD"; eval $CMD; exec $SHELL"'


    Because gnome-terminal can only run a single command and doesn't understand things like &&, I need to call bash -c ($SHELL -c) in order to interpret the command correctly and keep the shell running afterward (and since bash doesn't directly support that I have to also sneak in exec $SHELL at the end.)










    share|improve this question







    New contributor




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





















      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      No colors are displayed when running bash -c "ls -l" (CentOS 7.2). I have an obscure reason to want to show the colors after all. Can I disable this... color suppression?




      For anyone wondering about my obscure use case: I'm running the Parcellite clipboard manager, which supports "actions" in a context menu, and one of the actions I've defined is "Run terminal command" which opens a new terminal and runs a command stored on the clipboard. It is implemented in the following way (so that the command is allowed to contain all special characters except apostrophe):



      # Parcellite recognizes %s only once; store in a variable to use twice
      CMD='%s' gnome-terminal -e "$SHELL -c 'echo \$ "$CMD"; eval $CMD; exec $SHELL'"
      # Or equivalently....
      CMD='%s' gnome-terminal -e $SHELL' -c "echo $ "$CMD"; eval $CMD; exec $SHELL"'


      Because gnome-terminal can only run a single command and doesn't understand things like &&, I need to call bash -c ($SHELL -c) in order to interpret the command correctly and keep the shell running afterward (and since bash doesn't directly support that I have to also sneak in exec $SHELL at the end.)










      share|improve this question







      New contributor




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











      No colors are displayed when running bash -c "ls -l" (CentOS 7.2). I have an obscure reason to want to show the colors after all. Can I disable this... color suppression?




      For anyone wondering about my obscure use case: I'm running the Parcellite clipboard manager, which supports "actions" in a context menu, and one of the actions I've defined is "Run terminal command" which opens a new terminal and runs a command stored on the clipboard. It is implemented in the following way (so that the command is allowed to contain all special characters except apostrophe):



      # Parcellite recognizes %s only once; store in a variable to use twice
      CMD='%s' gnome-terminal -e "$SHELL -c 'echo \$ "$CMD"; eval $CMD; exec $SHELL'"
      # Or equivalently....
      CMD='%s' gnome-terminal -e $SHELL' -c "echo $ "$CMD"; eval $CMD; exec $SHELL"'


      Because gnome-terminal can only run a single command and doesn't understand things like &&, I need to call bash -c ($SHELL -c) in order to interpret the command correctly and keep the shell running afterward (and since bash doesn't directly support that I have to also sneak in exec $SHELL at the end.)







      bash terminal colors






      share|improve this question







      New contributor




      Qwertie 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 question







      New contributor




      Qwertie 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 question




      share|improve this question






      New contributor




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









      asked 25 mins ago









      Qwertie

      1011




      1011




      New contributor




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





      New contributor





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






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




















          1 Answer
          1






          active

          oldest

          votes

















          up vote
          0
          down vote













          It's not that colors are suppressed when you call ls that way, it's that colors are not enabled.



          Your normal shell likely defines an alias for ls that includes --color=tty to enable colors, so just use that option when you call ls.






          share|improve this answer




















            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',
            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
            );



            );






            Qwertie is a new contributor. Be nice, and check out our Code of Conduct.









             

            draft saved


            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f480672%2fhow-can-i-get-colors-when-executing-bash-c%23new-answer', 'question_page');

            );

            Post as a guest






























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            0
            down vote













            It's not that colors are suppressed when you call ls that way, it's that colors are not enabled.



            Your normal shell likely defines an alias for ls that includes --color=tty to enable colors, so just use that option when you call ls.






            share|improve this answer
























              up vote
              0
              down vote













              It's not that colors are suppressed when you call ls that way, it's that colors are not enabled.



              Your normal shell likely defines an alias for ls that includes --color=tty to enable colors, so just use that option when you call ls.






              share|improve this answer






















                up vote
                0
                down vote










                up vote
                0
                down vote









                It's not that colors are suppressed when you call ls that way, it's that colors are not enabled.



                Your normal shell likely defines an alias for ls that includes --color=tty to enable colors, so just use that option when you call ls.






                share|improve this answer












                It's not that colors are suppressed when you call ls that way, it's that colors are not enabled.



                Your normal shell likely defines an alias for ls that includes --color=tty to enable colors, so just use that option when you call ls.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 15 mins ago









                RalfFriedl

                4,6841725




                4,6841725




















                    Qwertie is a new contributor. Be nice, and check out our Code of Conduct.









                     

                    draft saved


                    draft discarded


















                    Qwertie is a new contributor. Be nice, and check out our Code of Conduct.












                    Qwertie is a new contributor. Be nice, and check out our Code of Conduct.











                    Qwertie is a new contributor. Be nice, and check out our Code of Conduct.













                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f480672%2fhow-can-i-get-colors-when-executing-bash-c%23new-answer', 'question_page');

                    );

                    Post as a guest













































































                    Popular posts from this blog

                    How to check contact read email or not when send email to Individual?

                    Displaying single band from multi-band raster using QGIS

                    How many registers does an x86_64 CPU actually have?