How can I get an environment variable representing my machine ip?
I'm not sure how the scope of variables in /etc/environment
works, nor when they get created, but I need a "global" environment variable that is populated with the ip address after a DHCP address is assigned so I can use that variable just like any variable defined in /etc/environment
For example, I assign hard-coded variables in /etc/environment
such as:
TZ="America/New_York"
I can then use ${TZ}
in **yml* configuration files and they will be populated with value assigned in /etc/environment
I need to be able to use ${ipv4}
in my yml files which will have the machine's ip address (which is assigned via DHCP). How can I create this, keeping in mind I might not log into the machine.
I've done a little research and I know I can populate a value with the ip address by running the following executed from a bash prompt will populate foo
with the correct ip.
foo=$(/sbin/ip -o -4 addr list enp0s3 | awk '{print $4}' | cut -d/ -f1)
ETA: Since my machine gets assigned an ip from my router's MAC address filtering option, I won't expect my ip to ever change unless I do so from the router, which I tend to do from time to time. So this is why I'm not hard coding the actual value into the file
boot 18.04 environment-variables
|
show 3 more comments
I'm not sure how the scope of variables in /etc/environment
works, nor when they get created, but I need a "global" environment variable that is populated with the ip address after a DHCP address is assigned so I can use that variable just like any variable defined in /etc/environment
For example, I assign hard-coded variables in /etc/environment
such as:
TZ="America/New_York"
I can then use ${TZ}
in **yml* configuration files and they will be populated with value assigned in /etc/environment
I need to be able to use ${ipv4}
in my yml files which will have the machine's ip address (which is assigned via DHCP). How can I create this, keeping in mind I might not log into the machine.
I've done a little research and I know I can populate a value with the ip address by running the following executed from a bash prompt will populate foo
with the correct ip.
foo=$(/sbin/ip -o -4 addr list enp0s3 | awk '{print $4}' | cut -d/ -f1)
ETA: Since my machine gets assigned an ip from my router's MAC address filtering option, I won't expect my ip to ever change unless I do so from the router, which I tend to do from time to time. So this is why I'm not hard coding the actual value into the file
boot 18.04 environment-variables
Look into using the/etc/profile
file or creating a script in/etc/profile.d/
folder that will run your command to set thefoo
as a global variable.
– Terrance
Feb 7 at 17:10
Don't those only get executed upon login?
– Mike Forman
Feb 7 at 18:57
This all depends on why you need to know what your IP address is. The host is already named for localhost. Localhost is a global variable already to the system. And yes, the profile would be only run at login. Or if you added it to~/.bashrc
would run on every time you launched a terminal window, but that is not global and is only used in the present terminal session. If you added it to your~/.profile
file, it would have to be sourced every time you wish to use it. You can source any file at any time.. /etc/profile
would source the file at that time.
– Terrance
Feb 7 at 19:04
Your~/.profile
file is sourced at login as well.
– Terrance
Feb 7 at 19:05
I need to know the ip address the DHCP server hands out to this machine, and I need it after it is assigned and not before waiting for someone to login, much less having a kludge to auto-login. So after the login window appears, I'd like to have XXX=192.168.1.46
– Mike Forman
Feb 7 at 19:14
|
show 3 more comments
I'm not sure how the scope of variables in /etc/environment
works, nor when they get created, but I need a "global" environment variable that is populated with the ip address after a DHCP address is assigned so I can use that variable just like any variable defined in /etc/environment
For example, I assign hard-coded variables in /etc/environment
such as:
TZ="America/New_York"
I can then use ${TZ}
in **yml* configuration files and they will be populated with value assigned in /etc/environment
I need to be able to use ${ipv4}
in my yml files which will have the machine's ip address (which is assigned via DHCP). How can I create this, keeping in mind I might not log into the machine.
I've done a little research and I know I can populate a value with the ip address by running the following executed from a bash prompt will populate foo
with the correct ip.
foo=$(/sbin/ip -o -4 addr list enp0s3 | awk '{print $4}' | cut -d/ -f1)
ETA: Since my machine gets assigned an ip from my router's MAC address filtering option, I won't expect my ip to ever change unless I do so from the router, which I tend to do from time to time. So this is why I'm not hard coding the actual value into the file
boot 18.04 environment-variables
I'm not sure how the scope of variables in /etc/environment
works, nor when they get created, but I need a "global" environment variable that is populated with the ip address after a DHCP address is assigned so I can use that variable just like any variable defined in /etc/environment
For example, I assign hard-coded variables in /etc/environment
such as:
TZ="America/New_York"
I can then use ${TZ}
in **yml* configuration files and they will be populated with value assigned in /etc/environment
I need to be able to use ${ipv4}
in my yml files which will have the machine's ip address (which is assigned via DHCP). How can I create this, keeping in mind I might not log into the machine.
I've done a little research and I know I can populate a value with the ip address by running the following executed from a bash prompt will populate foo
with the correct ip.
foo=$(/sbin/ip -o -4 addr list enp0s3 | awk '{print $4}' | cut -d/ -f1)
ETA: Since my machine gets assigned an ip from my router's MAC address filtering option, I won't expect my ip to ever change unless I do so from the router, which I tend to do from time to time. So this is why I'm not hard coding the actual value into the file
boot 18.04 environment-variables
boot 18.04 environment-variables
asked Feb 7 at 16:59
Mike FormanMike Forman
61
61
Look into using the/etc/profile
file or creating a script in/etc/profile.d/
folder that will run your command to set thefoo
as a global variable.
– Terrance
Feb 7 at 17:10
Don't those only get executed upon login?
– Mike Forman
Feb 7 at 18:57
This all depends on why you need to know what your IP address is. The host is already named for localhost. Localhost is a global variable already to the system. And yes, the profile would be only run at login. Or if you added it to~/.bashrc
would run on every time you launched a terminal window, but that is not global and is only used in the present terminal session. If you added it to your~/.profile
file, it would have to be sourced every time you wish to use it. You can source any file at any time.. /etc/profile
would source the file at that time.
– Terrance
Feb 7 at 19:04
Your~/.profile
file is sourced at login as well.
– Terrance
Feb 7 at 19:05
I need to know the ip address the DHCP server hands out to this machine, and I need it after it is assigned and not before waiting for someone to login, much less having a kludge to auto-login. So after the login window appears, I'd like to have XXX=192.168.1.46
– Mike Forman
Feb 7 at 19:14
|
show 3 more comments
Look into using the/etc/profile
file or creating a script in/etc/profile.d/
folder that will run your command to set thefoo
as a global variable.
– Terrance
Feb 7 at 17:10
Don't those only get executed upon login?
– Mike Forman
Feb 7 at 18:57
This all depends on why you need to know what your IP address is. The host is already named for localhost. Localhost is a global variable already to the system. And yes, the profile would be only run at login. Or if you added it to~/.bashrc
would run on every time you launched a terminal window, but that is not global and is only used in the present terminal session. If you added it to your~/.profile
file, it would have to be sourced every time you wish to use it. You can source any file at any time.. /etc/profile
would source the file at that time.
– Terrance
Feb 7 at 19:04
Your~/.profile
file is sourced at login as well.
– Terrance
Feb 7 at 19:05
I need to know the ip address the DHCP server hands out to this machine, and I need it after it is assigned and not before waiting for someone to login, much less having a kludge to auto-login. So after the login window appears, I'd like to have XXX=192.168.1.46
– Mike Forman
Feb 7 at 19:14
Look into using the
/etc/profile
file or creating a script in /etc/profile.d/
folder that will run your command to set the foo
as a global variable.– Terrance
Feb 7 at 17:10
Look into using the
/etc/profile
file or creating a script in /etc/profile.d/
folder that will run your command to set the foo
as a global variable.– Terrance
Feb 7 at 17:10
Don't those only get executed upon login?
– Mike Forman
Feb 7 at 18:57
Don't those only get executed upon login?
– Mike Forman
Feb 7 at 18:57
This all depends on why you need to know what your IP address is. The host is already named for localhost. Localhost is a global variable already to the system. And yes, the profile would be only run at login. Or if you added it to
~/.bashrc
would run on every time you launched a terminal window, but that is not global and is only used in the present terminal session. If you added it to your ~/.profile
file, it would have to be sourced every time you wish to use it. You can source any file at any time. . /etc/profile
would source the file at that time.– Terrance
Feb 7 at 19:04
This all depends on why you need to know what your IP address is. The host is already named for localhost. Localhost is a global variable already to the system. And yes, the profile would be only run at login. Or if you added it to
~/.bashrc
would run on every time you launched a terminal window, but that is not global and is only used in the present terminal session. If you added it to your ~/.profile
file, it would have to be sourced every time you wish to use it. You can source any file at any time. . /etc/profile
would source the file at that time.– Terrance
Feb 7 at 19:04
Your
~/.profile
file is sourced at login as well.– Terrance
Feb 7 at 19:05
Your
~/.profile
file is sourced at login as well.– Terrance
Feb 7 at 19:05
I need to know the ip address the DHCP server hands out to this machine, and I need it after it is assigned and not before waiting for someone to login, much less having a kludge to auto-login. So after the login window appears, I'd like to have XXX=192.168.1.46
– Mike Forman
Feb 7 at 19:14
I need to know the ip address the DHCP server hands out to this machine, and I need it after it is assigned and not before waiting for someone to login, much less having a kludge to auto-login. So after the login window appears, I'd like to have XXX=192.168.1.46
– Mike Forman
Feb 7 at 19:14
|
show 3 more comments
0
active
oldest
votes
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "89"
};
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%2faskubuntu.com%2fquestions%2f1116444%2fhow-can-i-get-an-environment-variable-representing-my-machine-ip%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Ask Ubuntu!
- 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%2faskubuntu.com%2fquestions%2f1116444%2fhow-can-i-get-an-environment-variable-representing-my-machine-ip%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
Look into using the
/etc/profile
file or creating a script in/etc/profile.d/
folder that will run your command to set thefoo
as a global variable.– Terrance
Feb 7 at 17:10
Don't those only get executed upon login?
– Mike Forman
Feb 7 at 18:57
This all depends on why you need to know what your IP address is. The host is already named for localhost. Localhost is a global variable already to the system. And yes, the profile would be only run at login. Or if you added it to
~/.bashrc
would run on every time you launched a terminal window, but that is not global and is only used in the present terminal session. If you added it to your~/.profile
file, it would have to be sourced every time you wish to use it. You can source any file at any time.. /etc/profile
would source the file at that time.– Terrance
Feb 7 at 19:04
Your
~/.profile
file is sourced at login as well.– Terrance
Feb 7 at 19:05
I need to know the ip address the DHCP server hands out to this machine, and I need it after it is assigned and not before waiting for someone to login, much less having a kludge to auto-login. So after the login window appears, I'd like to have XXX=192.168.1.46
– Mike Forman
Feb 7 at 19:14