Na moim Linux-ie (konkretnie Gentoo Linux 2.6.31) zauważyłem, że zmienna środowiskowa HOSTNAME jest dostępna w mojej powłoce, ale nie w skryptach. Na przykład,
$ echo $HOSTNAME
zwroty
xxxxxxxx.com,
ale
$ ruby -e 'puts ENV["HOSTNAME"]'
zwroty
nil
Z drugiej strony, na przykład zmienna środowiskowa USER jest dostępna zarówno w powłoce, jak iw skryptach.
Zauważyłem, że USER pojawia się na liście zmiennych środowiskowych, które pojawiają się podczas pisania
export
to znaczy,
declare -x USER="infogrind"
ale HOSTNAME nie. Podejrzewam, że problem ma z tym coś wspólnego.
Moje pytania: 1) jak mogę udostępnić HOSTNAME w skryptach oraz 2) dla lepszego zrozumienia, gdzie ta zmienna jest początkowo ustawiona i dlaczego nie jest „eksportowana”?
gethostname()
tego powodu zwykle lepiej jest go używać .