bash
와 $HOSTNAME
사이에 차이가 zsh
있나요 $HOST
?
그렇지 않다면 변수를 언제 사용할지 bash
선택하는 역사적 이유가 있습니까 ?$HOSTNAME
tcsh
zsh
$HOST
답변1
답변의 일부인 변수 내용은 다음과 같습니다.
모든 변수의 값은 호출에서 나옵니다.gethostname(2)
:
tcsh
sh.c:main()
기본:unknown
.bash
shell.c:shell_initialize()
. 기본:??host??
zsh
매개변수.c:createparamtable()
기본값은 다음과 같습니다.
tcsh
:unknown
.bash
:??host??
zsh
: (유효하지 않은)
흥미롭게도 zsh
반환 값은 확인되지 않습니다!
답변2
$HOSTNAME
1996년 12월에 출시된 2.0의 bash에 추가되었습니다..
변경 로그에는 1995년 8월 1일에 구현되었다고 나와 있습니다.
나는 저자가 HOSTNAME이 HOST보다 더 나은 이름이라고 생각했다고 가정할 수 있으며, 변수(예: )가 1990년 bash 1.05에서 훨씬 일찍 추가되었다는 점을 고려하면 bash
그들의 관점을 이해할 수 있습니다.bash
$HOSTTYPE
tcsh
$HOSTTYPE
그 자체로 훨씬 더 뒤틀린 역사를 가지고 있는 것 같습니다.
tcsh 6.05(1994년 6월) 릴리스 노트에서 다음을 볼 수 있습니다:
- $HOSTTYPE이 곧 사라질 것입니다. 새로운 변수 $OSTYPE, $MACHTYPE, $VENDOR는 gnu 변수와 유사합니다.
무엇에 대한 모호함을 제거하는 것유형HOST
우리는 변수 이름에 대해 이야기하고 있습니다.
그러나 $HOSTTYPE
결국 그는 떠나지 않았다 tcsh
.
bash
1.14.0은 1994년 6월에 도입되었지만 2.0 이전에는 추가되지 않았고 추가된 적이 없으므로 무엇인지 잘 모르겠습니다 $OSTYPE
.$MACHTYPE
$VENDOR
bash
그누위 내용을 참조합니다.
zsh
원래는 거기에 있었지만 $HOSTTYPE
1995년에 zsh-2.6-beta에서 제거되고 $OSTYPE
, $MACHTYPE
로 대체 되었습니다 $VENDOR
.
bash
어쨌든 노트북 amd64 PC에서 실행되는 Ubuntu GNU/Linux 시스템을 살펴보면 이러한 변수의 값은 셸마다 크게 다르며 버전 간에도 의미도 크게 달라지는 것처럼 보입니다 .
bash
호스트 이름이 있는 /prompt 확장자(첫 번째 점 앞 부분)에서 벗어나 tcsh
반대(동등)를 선택하기 로 결정했음을 알 수 있습니다 .zsh
%M
%m
\h
%m