내 컴퓨터에 대한 로그인 메시지를 작성 중이며 /etc/bashrc
컴퓨터에 인사하고 컴퓨터 이름을 표시하고 싶습니다.
이것은 내 코드입니다.
# (system stuff here)
echo "Welcome, $(whoami)."
어떤 사용자와도 사용 하면 login
내가 기대하는 바를 얻을 수 있습니다 Welcome, avgjoe
.
하지만 출력하고 싶습니다 Welcome, avgjoe, to Tower of Nix
. 내 컴퓨터 이름은 (시스템 환경 설정을 통해) "Tower of Nix"로 설정되어 있습니다.
그러면 컴퓨터를 하드코딩하지 않고(예:) 컴퓨터 이름을 어떻게 알 수 있나요 echo "Welcome, $(whoami), to Tower of Nix."
?
나는 이것을 시도했지만 hostname
아무것도 출력하지 않습니다 192.168.2.13
.
scutil --get ComputerName
내가 요청한 것(output)을 정확하게 수행하는 것으로 밝혀졌지만 Tower of Nix
매뉴얼 페이지를 보면 다음과 같이 scutil
명시되어 있습니다.
역사
이
scutil
명령은 Mac OS X 공개 베타에 나타납니다.
따라서 Linux, *BSD 등 모든 운영 체제에서는 작동하지 않을 수 있습니다.
내 질문:모든 컴퓨터에서 컴퓨터 이름을 얻는 방법(또는 거의 모든 것)UNIX의 파생물인가요?
답변1
전부는 아니지만 많은 Unix 계열 시스템에 이 옵션이 uname
있습니다 .n
uname -n
답변2
Mac OS X는 컴퓨터의 IP 호스트 이름과 완전히 다른 이름을 저장하고 검색할 수 있는 몇 안 되는 Unix 계열 시스템 중 하나입니다. 에 대한 호출을 특별하게 처리하는 것이 더 좋습니다 scutil
. 실패하면 더 표준적인 방법으로 돌아가세요 hostname
.
echo "Welcome, $(whoami), to $(scutil --get ComputerName 2>/dev/null || hostname)."
답변3
GNU/Linux의 호스트 이름은 파일에 있습니다. 예를 들어, .slackware 의 줄을 변경하여 Slackware에서 호스트 이름을 편집할 수 있습니다 /etc/HOSTNAME
.
내 제안은 이 파일을 bashrc의 명령에 연결하는 것입니다. 시스템에 호스트 이름 파일이 없으면 /etc
간단히 만들 수 있습니다. 또는 변수가 로그인한 사람의 이름으로 채워지므로 $USER
not을 사용할 수 있습니다 .whoami
USER
명령은 다음과 같습니다.
echo "Welcome, $USER, to `cat /etc/HOSTNAME`"