네트워크 구성을 용이하게 하기 위해 zenity 양식을 만들고 있습니다. 최종 사용자가 정보를 입력하기만 하면 스크립트가 나머지 작업을 수행합니다.
더 좋은 방법이 있나요?
어떤 의견이라도 환영합니다.
감사해요
sudo sed -i.bak '7,8 d' /etc/network/interfaces sudo sed -i '/inet 네트워크 마스크/d' /etc/network/인터페이스 sudo sed -i '/inet 네임서버/d' /etc/network/interfaces sudo sed -i '/inet 주소/d' /etc/network/인터페이스 sudo sed -i '/inet 게이트웨이/d' /etc/network/인터페이스 sudo sed -i "8a iface eth0 inet static" /etc/network/interfaces ip=$(zenity --entry --title="IP 주소" --text="IP 주소:") sudo sed -i "9a 주소 $ip" /etc/network/interfaces 마스크=$(zenity --entry --title="네트워크 마스크" --text="네트워크 마스크 주소:") sudo sed -i "11a 네트워크 마스크$mask" /etc/network/interfaces Gateway=$(zenity --entry --title="게이트웨이 주소" --text="게이트웨이 주소:") sudo sed -i "10a Gateway$gateway" /etc/network/interfaces dns=$(zenity --entry --title="Dns" --text="Dns 주소:") sudo sed -i "12a dns-nameservers $dns" /etc/network/interfaces sudo sed -i "13a iface eth1 inet static" /etc/network/interfaces sudo sed -i "14a 주소 $ip" /etc/network/interfaces sudo sed -i "15a 게이트웨이 $gateway" /etc/network/interfaces sudo sed -i "16a 네트워크 마스크$mask" /etc/network/interfaces sudo sed -i "17a dns-nameservers $dns" /etc/network/interfaces zenity --question --text "정보가 정확합니까?"; 만약 [$? > 0]; 그 다음에 echo "--- 다시 해 보세요---" sudo cp home/Test/interfaces /etc/network/ #interfaces.bak가 복사됩니다. #덮어쓰기 변경됨 3초 동안 자세요 출구 필리핀 제도
이제 이것을 다음과 같이 변경합니다.
cp /etc/network/interfaces /tmp/interfaces
sed -i -e '7,8 d' \
-e '/inet address/d '\
-e '/inet netmask/d' \
-e '/inet nameservers/d' \
-e '/inet gateway/d' \
-e '/iface eth0 inet static/d' \
-e '/iface eth1 inet static/d' /tmp/interfaces
sudo sed -i "8a iface eth0 inet static" /tmp/interfaces
ip=$(zenity --entry --title="Ip adress" --text="Ip adress:")
sudo sed -i "9a address $ip" /tmp/interfaces
mask=$(zenity --entry --title="Netmask" --text="Netmask address:")
sudo sed -i "10a netmask $mask" /tmp/interfaces
gateway=$(zenity --entry --title="Gateway address" --text="Gateway address:")
sudo sed -i "11a gateway $gateway"/tmp/interfaces
dns=$(zenity --entry --title="Dns" --text="Dns address:")
sudo sed -i "12a dns-nameservers $dns" /tmp/interfaces
sudo sed -i "13a iface eth1 inet static" /tmp/interfaces
sudo sed -i "14a address $ip" /tmp/interfaces
sudo sed -i "15a gateway $gateway" /tmp/interfaces
sudo sed -i "16a netmask $mask" /tmp/interfaces
sudo sed -i "17a dns-nameservers $dns" /tmp/interfaces
wait 1s;
sudo zenity --text-info --height=500 --width=400 < <(cat /tmp/interfaces)
if ! zenity --question --text "Är alla addresser rätt ifyllda"; then
cp /tmp/interfaces /etc/network/interfaces
exit
fi
아무 일도 일어나지 않습니다. 파일이 변경되지 않습니다. 도움이 필요하십니까? :디
답변1
뛰어다녔다스크립트그리고
sudo
. 모든 명령에 접두사를 붙이지 마십시오sudo
. 또는/etc/network/interfaces
루트가 아닌 사용자로 복사본을 만들고 작업한 다음 다음sudo
을 사용하여 다시 복사하십시오.sed ...; sed ...; sed ...
로 대체될 수 있습니다sed -e '...' -e '...' -e '...'
.$?
테스트가 필요하지 않습니다.
그래서 당신이 얻는 것은
cp /etc/network/interfaces /tmp/interfaces
sed -i -e '7,8 d' \
-e '/inet netmask/d' \
-e '/inet nameservers/d \
(etc.)
-e '8a iface eth0 inet static' /tmp/interfaces
(etc.)
if ! zenity --question --text "Is the information accurate"; then
...
fi