나는 거의이 과정을 자동화 할 스크립트를 만들려고 노력했다의 예기치 않은 종료 점점 계속 : http://knowledgelayer.softlayer.com/procedure/add-additional-ips-redhat처음 BASH 스크립트를 시도, 파일
그것이 어떻게 작동하는지 잘 너무 확실하지 않았다, 그러나 didn를 내가 스크립트를 하나 만들 수있게되기까지 너무 오래 걸리지 않는다. 편집 # 2 : 업데이트 된 코드
편집 : 다음은 스크립트의 내용은이 주로 작업있어, 그러나 지금은 루프를 실행하고 정적 IP
#!/bin/bash
path=/etc/sysconfig/network-scripts/
echo "Let's get your IP added :)"
echo""
getnewip()
{
echo read -p "Enter the new IP Address you wish to add: " staticip
}
getserverinfo()
{
gateway=$(netstat -rn | sed -n 3p | awk '{print $2}')
netmask=$(ifconfig eth1 | grep -i 'netmask' | grep -v '127.0.0.1' | awk '{print $4}')
clone=$(ifconfig | grep eth1 | awk '{print $1}' | cut -d: -f2)
}
rangechecks()
{
cd /etc/sysconfig/network-scripts/
ls ifcfg-eth1-range*
filename==$1
if [[ ! -f $filename ]]; then
touch "$filename"
echo "Created \"$filename\""
fi
digit=1
while true; do
temp_name=$filename-$digit
if [[ ! -f temp_name ]]; then
touch "$temp_name"
echo "Created $path\"$temp_name\""
digit=$((digit + 1))
fi
done
}
writeinterfacefile()
{
cat >> "/etc/sysconfig/network-scripts/$1" << EOF
IPADDR_START=$staticip
IPADDR_END=$staticip
NETMASK=$netmask
CLONENUM_START=$((clone+1))
EOF
echo ""
echo "Your information was saved in the file '$1'."
echo ""
}
{
clear
getserverinfo
echo ""
echo "Please verify this information: "
echo "Gateway Address: " "$gateway"
echo "Netmask: " "$netmask"
echo "Your new IP: " "$staticip"
echo ''
while true; do
read -p "Is this information correct? [y/N]" yn
case $yn in
[Yy]*) $writeinterfacefile;;
[Nn]*) print "$getserverinfo" && exit ;;
*) echo 'Please enter Y or n';;
esac
done
}
을 얻을 수있는 읽기 확인 절차 건너 뜁니다
나는 스크립팅에 대해 상당히 새롭기 때문에 무서운 구문을 변명하십시오. 내 눈은 그 EOF에 있지만 나는 단서가 없습니다.
다음을보십시오. http://www.shellcheck.net/ – Cyrus
실제로 모든 오류는 사라졌지 만 여전히 바람직하지 않은 결과를 얻고 있습니다. –
'echo ""'또는'echo'를 사용하여 출력에 빈 줄을 삽입하지 않도록하십시오. 'echo -e '를 사용하십시오. \ nWhatever ... \ n "'또는'printf"\ nWhatever .. \ n \ n "'-e' 옵션을 사용하면 이스케이프를 해석 할 수 있습니다. printf는 항상 이스케이프를 해석합니다. 'syntax highlighting '을 가진 편집기를 사용하고 코드를 적절하게'들여 쓰기'하면 스크립팅 (예기치 않은 EOF를 찾는 것)이 크게 도움이 될 것입니다. 리눅스'konsole/gedit'는 gui-editors로 단단한 강조 표시가되어 있으며,'vim/emacs'는 훌륭한 텍스트 기반 편집자입니다. Windows 측에서'notepad ++ '는 좋은 강조 표시를 가지고 있으며'GPL'입니다. –