HOSTNAME environment variable on Linux
On my Linux box (Gentoo Linux 2.6.31 to be specific) I have noticed that the HOSTNAME environment variable is available in my shell, but not in scripts. For example,
$ echo $HOSTNAME
returns
xxxxxxxx.com,
but
$ ruby -e 'puts ENV["HOSTNAME"]'
returns
nil
On the other hand, the USER environment variable, for instance, is available both in the shell and in scripts.
I have noticed that USER appears in the list of environment variables that appears when I type
export
i.e.,
declare -x USER="infogrind"
but HOSTNAME doesn't. I suspect the issue has something to do with that.
My questions: 1) how can I make HOSTNAME available in scripts, and 2) for my better understanding, where is this variable initially set, and why is it not "exported"?
linux shell environment-variables
add a comment |
On my Linux box (Gentoo Linux 2.6.31 to be specific) I have noticed that the HOSTNAME environment variable is available in my shell, but not in scripts. For example,
$ echo $HOSTNAME
returns
xxxxxxxx.com,
but
$ ruby -e 'puts ENV["HOSTNAME"]'
returns
nil
On the other hand, the USER environment variable, for instance, is available both in the shell and in scripts.
I have noticed that USER appears in the list of environment variables that appears when I type
export
i.e.,
declare -x USER="infogrind"
but HOSTNAME doesn't. I suspect the issue has something to do with that.
My questions: 1) how can I make HOSTNAME available in scripts, and 2) for my better understanding, where is this variable initially set, and why is it not "exported"?
linux shell environment-variables
add a comment |
On my Linux box (Gentoo Linux 2.6.31 to be specific) I have noticed that the HOSTNAME environment variable is available in my shell, but not in scripts. For example,
$ echo $HOSTNAME
returns
xxxxxxxx.com,
but
$ ruby -e 'puts ENV["HOSTNAME"]'
returns
nil
On the other hand, the USER environment variable, for instance, is available both in the shell and in scripts.
I have noticed that USER appears in the list of environment variables that appears when I type
export
i.e.,
declare -x USER="infogrind"
but HOSTNAME doesn't. I suspect the issue has something to do with that.
My questions: 1) how can I make HOSTNAME available in scripts, and 2) for my better understanding, where is this variable initially set, and why is it not "exported"?
linux shell environment-variables
On my Linux box (Gentoo Linux 2.6.31 to be specific) I have noticed that the HOSTNAME environment variable is available in my shell, but not in scripts. For example,
$ echo $HOSTNAME
returns
xxxxxxxx.com,
but
$ ruby -e 'puts ENV["HOSTNAME"]'
returns
nil
On the other hand, the USER environment variable, for instance, is available both in the shell and in scripts.
I have noticed that USER appears in the list of environment variables that appears when I type
export
i.e.,
declare -x USER="infogrind"
but HOSTNAME doesn't. I suspect the issue has something to do with that.
My questions: 1) how can I make HOSTNAME available in scripts, and 2) for my better understanding, where is this variable initially set, and why is it not "exported"?
linux shell environment-variables
linux shell environment-variables
asked Apr 19 '10 at 8:16
user34614
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
$HOSTNAME
is a Bash variable that's set automatically (rather than in a startup file). Ruby probably runs sh
for its shell and it doesn't include that variable. There's no reason you can't export it yourself.
bash$ echo $HOSTNAME
foobar
bash$ sh -c 'echo $HOSTNAME'
bash$ export HOSTNAME
bash$ sh -c 'echo $HOSTNAME'
foobar
You could add the export command to one of your startup files, such as ~/.bashrc
.
In Ruby (irb shown):
>> require 'socket'
=> true
>> Socket.gethostname
=> "bazinga"
2
It is usually better to usegethostname()
because of this.
– grawity
Apr 19 '10 at 11:25
2
The posix standard enumerates the environment variables you should expect on a posix-compliant systems, and HOSTNAME is not in the list: pubs.opengroup.org/onlinepubs/009695399/basedefs/…
– qneill
Apr 22 '15 at 20:56
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "3"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f132489%2fhostname-environment-variable-on-linux%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
$HOSTNAME
is a Bash variable that's set automatically (rather than in a startup file). Ruby probably runs sh
for its shell and it doesn't include that variable. There's no reason you can't export it yourself.
bash$ echo $HOSTNAME
foobar
bash$ sh -c 'echo $HOSTNAME'
bash$ export HOSTNAME
bash$ sh -c 'echo $HOSTNAME'
foobar
You could add the export command to one of your startup files, such as ~/.bashrc
.
In Ruby (irb shown):
>> require 'socket'
=> true
>> Socket.gethostname
=> "bazinga"
2
It is usually better to usegethostname()
because of this.
– grawity
Apr 19 '10 at 11:25
2
The posix standard enumerates the environment variables you should expect on a posix-compliant systems, and HOSTNAME is not in the list: pubs.opengroup.org/onlinepubs/009695399/basedefs/…
– qneill
Apr 22 '15 at 20:56
add a comment |
$HOSTNAME
is a Bash variable that's set automatically (rather than in a startup file). Ruby probably runs sh
for its shell and it doesn't include that variable. There's no reason you can't export it yourself.
bash$ echo $HOSTNAME
foobar
bash$ sh -c 'echo $HOSTNAME'
bash$ export HOSTNAME
bash$ sh -c 'echo $HOSTNAME'
foobar
You could add the export command to one of your startup files, such as ~/.bashrc
.
In Ruby (irb shown):
>> require 'socket'
=> true
>> Socket.gethostname
=> "bazinga"
2
It is usually better to usegethostname()
because of this.
– grawity
Apr 19 '10 at 11:25
2
The posix standard enumerates the environment variables you should expect on a posix-compliant systems, and HOSTNAME is not in the list: pubs.opengroup.org/onlinepubs/009695399/basedefs/…
– qneill
Apr 22 '15 at 20:56
add a comment |
$HOSTNAME
is a Bash variable that's set automatically (rather than in a startup file). Ruby probably runs sh
for its shell and it doesn't include that variable. There's no reason you can't export it yourself.
bash$ echo $HOSTNAME
foobar
bash$ sh -c 'echo $HOSTNAME'
bash$ export HOSTNAME
bash$ sh -c 'echo $HOSTNAME'
foobar
You could add the export command to one of your startup files, such as ~/.bashrc
.
In Ruby (irb shown):
>> require 'socket'
=> true
>> Socket.gethostname
=> "bazinga"
$HOSTNAME
is a Bash variable that's set automatically (rather than in a startup file). Ruby probably runs sh
for its shell and it doesn't include that variable. There's no reason you can't export it yourself.
bash$ echo $HOSTNAME
foobar
bash$ sh -c 'echo $HOSTNAME'
bash$ export HOSTNAME
bash$ sh -c 'echo $HOSTNAME'
foobar
You could add the export command to one of your startup files, such as ~/.bashrc
.
In Ruby (irb shown):
>> require 'socket'
=> true
>> Socket.gethostname
=> "bazinga"
edited Jan 11 at 1:13
answered Apr 19 '10 at 9:50
Dennis WilliamsonDennis Williamson
76.6k14129167
76.6k14129167
2
It is usually better to usegethostname()
because of this.
– grawity
Apr 19 '10 at 11:25
2
The posix standard enumerates the environment variables you should expect on a posix-compliant systems, and HOSTNAME is not in the list: pubs.opengroup.org/onlinepubs/009695399/basedefs/…
– qneill
Apr 22 '15 at 20:56
add a comment |
2
It is usually better to usegethostname()
because of this.
– grawity
Apr 19 '10 at 11:25
2
The posix standard enumerates the environment variables you should expect on a posix-compliant systems, and HOSTNAME is not in the list: pubs.opengroup.org/onlinepubs/009695399/basedefs/…
– qneill
Apr 22 '15 at 20:56
2
2
It is usually better to use
gethostname()
because of this.– grawity
Apr 19 '10 at 11:25
It is usually better to use
gethostname()
because of this.– grawity
Apr 19 '10 at 11:25
2
2
The posix standard enumerates the environment variables you should expect on a posix-compliant systems, and HOSTNAME is not in the list: pubs.opengroup.org/onlinepubs/009695399/basedefs/…
– qneill
Apr 22 '15 at 20:56
The posix standard enumerates the environment variables you should expect on a posix-compliant systems, and HOSTNAME is not in the list: pubs.opengroup.org/onlinepubs/009695399/basedefs/…
– qneill
Apr 22 '15 at 20:56
add a comment |
Thanks for contributing an answer to Super User!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f132489%2fhostname-environment-variable-on-linux%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown