运行bash -c "ls -l"时不显示颜色(CentOS 7.2)。我有一个模糊的理由,想要显示的颜色毕竟。我能不能让这个..。颜色抑制?
对于任何想知道我的模糊用例的人来说:我正在运行Parcellite剪贴板管理器,它支持上下文菜单中的" actions“,而我定义的操作之一是"Run终端命令”,它打开一个新的终端并运行存储在剪贴板上的命令。它以以下方式实现(以便该命令允许包含除撇号外的所有特殊字符):
# 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"'因为gnome-terminal只能运行一个命令,并且不能理解&&这样的东西,所以我需要调用bash -c ($SHELL -c),以便正确解释命令,并使shell在运行之后继续运行(而且由于bash 并不能直接支持,我也必须在最后溜进exec $SHELL )。
发布于 2018-11-09 00:17:17
不是用这种方式调用ls时会抑制颜色,而是没有启用颜色。
您的普通外壳很可能为ls定义了一个别名,其中包括启用颜色的--color=tty,因此在调用ls时只需使用该选项即可。
https://unix.stackexchange.com/questions/480672
复制相似问题