Auf einem Raspberry Pi versuche ich ein einfaches Skript zu schreiben, mit dem ich die statischen IP-Einstellungen in der Datei dhcpcd.conf ändern kann. Das folgende Skript funktioniert mit Ausnahme der DNS-Server. Es scheint, dass die sed-Anweisung für diese Zeile nicht funktioniert, da es zwei IP-Adressen durch ein Leerzeichen getrennt enthält. Das Skript wird wie folgt dar:Verwenden von sed zum Ändern der IP-Adressen in der Datei dhcpcd.conf
#!/bin/bash
currip=$(cat /etc/dhcpcd.conf | grep -e '^static ip_address=' | cut -d= -
f2)
currgw=$(cat /etc/dhcpcd.conf | grep -e '^static routers=' | cut -d= -f2)
currdns=$(cat /etc/dhcpcd.conf | grep -e '^static domain_name_servers=' |
cut -d= -f2)
echo "current IP is $currip"
echo "current GW is $currgw"
echo "current DNS servers are $currdns"
echo "Enter new static ip in form of x.x.x.x/x: "
read newip
echo "Enter new GW in form of x.x.x.x: "
read newgw
echo "Enter new DNS servers in form of x.x.x.x x.x.x.x: "
read newdns
echo "currip is $currip"
echo "new ip will be $newip"
echo "new dns will be $newdns"
sed -i -e "[email protected]$currip\[email protected][email protected]" /etc/dhcpcd.conf
sed -i -e "[email protected]$currgw\[email protected][email protected]" /etc/dhcpcd.conf
sed -i -e "[email protected]$currdns\[email protected][email protected]" /etc/dhcpcd.conf
chip=$(cat /etc/dhcpcd.conf | grep -e '^static ip_address=' | cut -d= -
f2)
chgw=$(cat /etc/dhcpcd.conf | grep -e '^static routers=' | cut -d= -f2)
chdns=$(cat /etc/dhcpcd.conf | grep -e '^static domain_name_servers=' |
cut -d= -f2)
echo "The ip has been changed to $chip"
echo "The GW has been changed to $chgw"
echo "The DNS server have been changed to $chdns"
Die Linien in der dhcpcd.conf Datei sieht wie folgt aus:
statisch ip_adresse = 192.168.126.7/24
statische Router = 192.168.126.1
static domain_name_servers = 192.168.126.1 66.243.243.101
Wie muss ich meine sed-Anweisung für die Domäne_name_servers optimieren?
Was geändert werden ist das Problem? Das aktuelle Skript ersetzen '192.168.126.1 66.243.243.101' mit dem, was neue DNS Sie eingegeben haben. – janos