유닉스는 $를 어떻게 해석합니까? [폐쇄]

유닉스는 $를 어떻게 해석합니까? [폐쇄]
[orca@orcacomputers public_html]$ adduser Jé$$è+rèè
adduser: invalid user name 'Jé28956è+rèè'

CentOS7에서 사용자를 추가할 때 $를 사용할 수 없습니다. Karen은 나를 왼손잡이 네안데르탈인이자 진정한 자아로 여기면서 사회적으로 십자가에 못 박으면서 “도대체 왜 그랬어요!?”라고 물었습니다. 호기심.

직업상 감사인이라 자료를 정리하면 행복감이 더해집니다. 그렇다면 여기서 $는 유닉스에게 무엇을 말해주는 걸까요? 지금까지 제가 할 수 있는 일은 $$=28956유닉스 환경에서 하는 것뿐입니다. 이것은 임의의 문자열입니까?

$문자를 사용하여 데이터를 정렬 하는 방법이 있습니까 ? 아니면 컴퓨터 과학 목적에 유효한 것으로 간주되는 다른 사용 사례가 있습니까?

[orca@orcacomputers public_html]$ adduser Jéssè+rèè
adduser: invalid user name 'Jéssè+rèè'

정말 뭐! ? 제가 직접 배포해야 하는 곳인가요?

답변1

특수 문자를 이스케이프 처리하는 방법에 대한 BlueManCZ의 답변 외에도 제안된 사용자 이름에 잘못된 문자가 많이 포함되어 있습니다. CAVEATS 섹션 아래의 CentOS 7 adduser 매뉴얼 페이지를 참조하십시오.

CAVEATS
       You may not add a user to a NIS or LDAP group. This must be performed on the corresponding
       server.

       Similarly, if the username already exists in an external user database such as NIS or LDAP,
       useradd will deny the user account creation request.

       Usernames may contain only lower and upper case letters, digits, underscores, or dashes. They
       can end with a dollar sign. Dashes are not allowed at the beginning of the username. Fully
       numeric usernames and usernames . or .. are also disallowed. It is not recommended to use
       usernames beginning with . character as their home directories will be hidden in the ls
       output. In regular expression terms: [a-zA-Z0-9_.][a-zA-Z0-9_.-]*[$]?

매뉴얼 페이지의 온라인 사본을 찾을 수 있습니다여기. 따라서 $사용자 이름에는 유효한 문자이지만 끝에만 유효합니다. 또한, +악센트 문자는 èCentOS의 adduser 구현에서는 절대 작동하지 않습니다.

예, 마음에 들지 않으면 자유롭게 직접 시작할 수 있습니다. 소스 코드를 찾을 수 있습니다여기.

답변2

쉘은 이를 $특수 문자로 해석합니다. $$귀하의 경우 현재 쉘의 PID를 반환합니다. $문자열에 사용 하려면 백슬래시로 이스케이프해야 합니다 \$.

예를 들어:

echo Jé\$\$è+rèè

Jé$$è+rèè

관련 정보