rm -i
다음 명령으로 생성된 메시지 에 사용자 정의 색상을 적용하는 방법을 찾고 있습니다 .
~ $ rm -i file.txt
rm: remove regular empty file 'file.txt'?
ANSI 색상을 적용하고 출력을 다시 stderr로 리디렉션하는 명령에 stderr를 stdin으로 리디렉션해야 한다는 것을 알고 있습니다. 예:
~ $ rm -i file.txt 2> >(sed $'s/^/\e[31m/;s/$/\e[m/'>&2)
그러나 이것만으로는 작동하지 않습니다. 위 명령은 아무것도 인쇄하지 않고 즉시 사용자 입력을 기다리기 시작합니다. 예를 들어 nand 를 입력하면 Enter컬러 출력이 표시되고 인쇄됩니다.
~ $ rm -i file.txt 2> >(sed $'s/^/\e[31m/;s/$/\e[m/'>&2)
n
rm: remove regular empty file 'file.txt'? ~ $
여기서 무엇이 잘못되었는지 이해하는 것 같습니다. stderr는 리디렉션되고 색상이 지정되지만 명령이 사용자 입력을 기다리기 시작하면 인쇄되지 않습니다. rm
표준 입력을 듣기 시작하기 전에 컬러 메시지를 인쇄하는 방법이 있습니까 ?