PS1에서 시간 알림을 설정하고 싶습니다. 그러나 busybox가 어떤 기호를 지원하는지에 대한 문서는 없습니다.
아는 사람 있나요? 그게 내가 아는 전부 야.
PS1='\u@\h: \w \$'
답변1
BusyBox에는 ash와 hush라는 두 개의 쉘이 있습니다. 어떤 것이 있는지 확인하려면 다음을 실행하세요 type chdir
. ash에는 내장 함수(동의어 포함 cd
)가 있지만 hush에는 없습니다. 둘 다 선택적 프롬프트 확장 기능을 가지고 있습니다. Ash는 ASH_EXPAND_PRMT
컴파일 타임에 기능을 활성화하여 활성화되지만 Hush에는 FEATURE_EDITING_FANCY_PROMPT
.
이 기능이 있으면 ash에서 값이 큰 PS1
따옴표로 묶인 문자열처럼 확장되고 구조도 확장됩니다 .$foo
$(command)
`command`
일부 백슬래시 이스케이프가 처리됩니다(대체 후 재로). 그들은 bash의 하위 집합입니다.
\!
: 행 기록 개수\a
: 벨\b
: 백스페이스 키\e
,\E
: 탈출하다\f
: 페이지 변경\h
: CPU 이름\n
: 새로운 팀\r
: 입력하다\t
: 라벨\u
:사용자 이름(만 포함FEATURE_GETUSERNAME_AND_HOMEDIR
)\v
:세로 탭 문자\w
:현재 디렉토리, 홈 디렉토리를 나타내는 밴드 포함~
(밴드만 포함FEATURE_GETUSERNAME_AND_HOMEDIR
)\W
:현재 디렉토리(축약되지 않음)\xHH
또는\XHH
HH가 두 개의 16진수 숫자인 경우: 16진수 코드로 지정된 문자\[…\]
: 포함된 텍스트는 너비 계산 목적으로 계산되지 않습니다.
(소스코드를 보면 에서 이런 일이 발생합니다 parse_and_put_prompt
. libbb/lineedit.c
)