"bash -c"를 실행할 때 색상을 얻는 방법은 무엇입니까?

"bash -c"를 실행할 때 색상을 얻는 방법은 무엇입니까?

실행 시 색상이 표시되지 않습니다 bash -c "ls -l"(CentOS 7.2). 결국 알 수 없는 이유로 색깔을 보여주고 싶었다. 이 색상 억제를 비활성화할 수 있나요?


내 모호한 사용 사례에 대해 궁금해하는 사람을 위해: 컨텍스트 메뉴에서 "작업"을 지원하는 Parcellite 클립보드 관리자를 실행하고 있습니다. 제가 정의한 작업 중 하나는 새 터미널을 열고 저장된 명령을 실행하는 "터미널 명령 실행"입니다. 클립보드에. 이는 다음과 같은 방식으로 구현됩니다(명령에서 아포스트로피를 제외한 모든 특수 문자를 허용하도록).

# 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직접적으로 지원되지는 않습니다.exec $SHELL결국 나도 몰래 들어가야 했다. )

답변1

보다 일반적인 대답은 bash -c로 변경하는 것입니다. 이 옵션은 셸을 "대화형" 모드로 전환하여 사용자의 파일을 읽고 별칭을 처리하도록 합니다.bash -ci-i.bashrc

답변2

이렇게 호출하면 색상이 억제되는 것이 아니라 ls색상이 활성화되지 않는 것입니다.

ls일반 셸에서는 색상을 활성화 하는 별칭을 정의하므로 --color=tty을 호출하면 됩니다 ls.

관련 정보