Shell Script to display network info

All we need is an easy explanation of the problem, so here it is.

I need help with a shell script to display my current IP Address and MAC Address with a “|” in between them like this:

IP Address:  | MAC Address: 

So can this be done easily in a shell script?

How to solve :

I know you bored from this bug, So we are here to help you! Take a deep breath and look at the explanation of your problem. We have many solutions to this problem, But we recommend you to use the first method because it is tested & true method that will 100% work for you.

Method 1

Shell Script:


IF=$(route | grep '^default' | grep -o '[^ ]*$')
IP=$(ip addr show $IF | awk '/inet / {print $2}' | cut -d/ -f 1)
MAC=$(ip link show $IF | awk '/ether/ {print $2}')

echo "IP Address: $IP | MAC Address: $MAC"

Look into grep, awk, and sed to learn more about text processing and doing more tasks like this.

Note: Use and implement method 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from or, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply