Hallo,
Ik ben een beetje aan het kijken na bash scripting, Nou heb ik een simpel batch script geschreven die IP configuratie laat zien zoals Ipconfig van windows doet. Het script werkt ook helemaal na behoren maar ik vind het nog niet zo netjes, want als ik nu bijvoorbeeld 3 interfaces heb word het command ifconfig 9x opgeroepen.
Ik wou kijken of het niet mogelijk is om de ifconfig een keer gebruiken en dat opslaan in een variable, probleem is met variable is het word een regel, en zelf zou het de opmaak hebben weet ik ook niet zo goed hoe ik alleen de gegevens van bijvorbeeld eth1 laten zien.
Script ziet er nu zo uit:
Als iemand mij de goede richting op kan wijzen hoe je dit moet doen of dat het wel mogelijk is
Ik ben een beetje aan het kijken na bash scripting, Nou heb ik een simpel batch script geschreven die IP configuratie laat zien zoals Ipconfig van windows doet. Het script werkt ook helemaal na behoren maar ik vind het nog niet zo netjes, want als ik nu bijvoorbeeld 3 interfaces heb word het command ifconfig 9x opgeroepen.
Ik wou kijken of het niet mogelijk is om de ifconfig een keer gebruiken en dat opslaan in een variable, probleem is met variable is het word een regel, en zelf zou het de opmaak hebben weet ik ook niet zo goed hoe ik alleen de gegevens van bijvorbeeld eth1 laten zien.
Script ziet er nu zo uit:
Bash:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
| #!/bin/bash # #Ipconfig script description: #This script will show the Hostname, DNS servers, Default gateway and #IP, Subnet, MAC address for all the interfaces. If you only want to #show one interface put interface behind the script like this: #ipconfig eth0 # # Ensure that root is running the script. ## WHOAMI=`/usr/bin/whoami` if [ $WHOAMI != "root" ]; then echo "You must be $(tput setaf 1)$(tput bold)root$(tput sgr0) to run this script!" exit 1 fi # End root #hostname HOSTNAME=$(hostname) #DNS DNS=$(grep "nameserver" /etc/resolv.conf | cut -d" " -f 2) #Default gateway GATEWAY=$(route -n | grep '^0\.0\.\0\.0[ \t]\+[1-9][0-9]*\.[1-9][0-9]*\.[1-9][0-9]*\.[1-9][0-9]*[ \t]\+0\.0\.0\.0[ \t]\+[^ \t]*G[^ \t]*[ \t]' | awk '{print $2}') clear echo Hostname:$(tput setaf 1) $HOSTNAME $(tput sgr0) y=1 for i in $DNS do echo "DNS $y: $i" y=$[$y+1] done echo echo Default gateway: $GATEWAY echo case $1 in '') #When no interface is given it will show avery interface ALLINT=$(ifconfig -a |cut -d" " -f1 | grep -v '^$') y=1 for i in $ALLINT do INTIP=$(ifconfig $i | grep "inet addr:" | cut -d" " -f 12 | cut -b6-30) INTSUB=$(ifconfig $i | grep "inet addr:" | cut -d" " -f16 | cut -b6-30) INTMAC=$(ifconfig $i | grep HWaddr | cut -d" " -f 11) echo Interface $(tput setaf 1)$i:$(tput sgr0) echo IP address: $INTIP echo Subnetmask: $INTSUB echo "MAC: $INTMAC" echo y=$[$y+1] done ;; #When a interface is given it will show that interface *) INTIP=$(ifconfig $1 | grep "inet addr:" | cut -d" " -f 12 | cut -b6-30) INTSUB=$(ifconfig $1 | grep "inet addr:" | cut -d" " -f16 | cut -b6-30) INTMAC=$(ifconfig $1 | grep HWaddr | cut -d" " -f 11) echo Interface $(tput setaf 1)$1:$(tput sgr0) echo IP address: $INTIP echo Subnetmask: $INTSUB echo "MAC: $INTMAC" echo ;; esac |
Als iemand mij de goede richting op kan wijzen hoe je dit moet doen of dat het wel mogelijk is
