저는 bash와 sed를 처음 접했습니다. who
의 출력을 가져 와서 각 줄을 들여 쓰고 프로세스에서 사용자 이름을 채색하고 싶습니다. 다음은 지금까지 내가 가지고있는 것입니다 :bash 스크립트에서 sed 문자열을 이스케이프 처리합니다.
#!/bin/bash
BOLD="\e[1m"
UNBOLD="\e[0m"
GREEN="\e[32m"
DEFAULT="\e[39m"
who | sed "[email protected]\\([a-z_][a-z0-9_]{0,30}\\) \\(.*\\)@\\t$BOLD$GREEN\\1$DEFAULT$UNBOLD\\[email protected]"
지금은 단지 출력을 변경하지 않고 그냥 출력합니다. 나는이 문제가 도망 치기와 관련이 있다고 확신하지만, 무엇이 필요하고 무엇이 필요하지는 않은지는 잘 모른다.
감사합니다.
변수 이름과 관련하여 : 특별한 이유가 있습니까? 내가 따르고있는 튜토리얼은 실제 변수에 대해 상수 및 소문자로 사용하려는 경우 대문자를 사용하는 것으로 보인다. – drwhattheheck
@drwhattheheck 어제와 오늘 아침 사이에, 작동하지 않는 몇몇 [tag : bash] 스크립트에 대해 2 가지 질문이있었습니다. 그 이유는 포스터 (2 명의 다른 남자)가 'PATH'라는 변수를 사용하여 모든 것을 망 쳤기 때문입니다. 그들은 이것을 존중해야만 시간을 절약 할 수있었습니다 : [tag : bash] _의 소문자 변수 이름 사용. –