실행 시 색상이 표시되지 않습니다 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
.