How can I get colors when executing `bash -c`?
Clash 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.)
bash terminal colors
New contributor
add a comment |Â
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.)
bash terminal colors
New contributor
add a comment |Â
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.)
bash terminal colors
New contributor
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
bash terminal colors
New contributor
New contributor
New contributor
asked 25 mins ago
Qwertie
1011
1011
New contributor
New contributor
add a comment |Â
add a comment |Â
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
.
add a comment |Â
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
.
add a comment |Â
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
.
add a comment |Â
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
.
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
.
answered 15 mins ago
RalfFriedl
4,6841725
4,6841725
add a comment |Â
add a comment |Â
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.
Qwertie is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password