On Fri, Mar 09, 2012 at 02:50:17PM +0800, Wanlong Gao wrote:
+#FIXME: This may not work OK for IPv6 ?
:-)
Does it work or not? Anyone??
+if [ "$ipconfig" = "yes" ]; then
+ case "$type/$distro" in
+ linux/fedora|linux/rhel)
+ if [ -d $mnt/etc/sysconfig/network-scripts ]; then
+ if [ -z $ipconfig_param ]; then
Apparently you don't need to quote parameters in bash, but while this
is technically correct, I think it is safer to quote it. There are a
few other similar ones later in the code.
+ for (( i=1; i<8 ; i+=2 )); do
+ __device=$(echo "$ipconfig_param" | awk -v j=$i -F:
'{print $j}')
+ if [ -z $__device ]; then
+ break
+ fi
+ __ipconfig=$(echo "$ipconfig_param" | awk -v
j=$((i+1)) -F: '{print $j}')
+ __config_file=$(echo
"$mnt/etc/sysconfig/network-scripts/ifcfg-$__device")
+ if [ -e $__config_file ]; then
+ __ip=$(echo "$__ipconfig" | awk -F, '{print
$1}')
+ __mask=$(echo "$__ipconfig" | awk -F, '{print
$2}')
+ __gw=$(echo "$__ipconfig" | awk -F, '{print
$3}')
+ sed
'/^IPADDR=/d;/^BOOTPROTO=/d;/^NETMASK=/d;/^GATEWAY=/d;/^DNS/d' \
+ < "$__config_file" >
"$__config_file.new"
+ echo "IPADDR=$__ip" >>
"$__config_file.new"
+ echo "BOOTPROTO=static" >>
"$__config_file.new"
+ echo "NETMASK=$__mask" >>
"$__config_file.new"
+ echo "GATEWAY=$__gw" >>
"$__config_file.new"
+ mv -f "$__config_file.new"
"$__config_file"
+ fi
+ done
+ fi
+ fi
I can't see any fault in this code. I wonder if there's an easier
way, but maybe not, this is shell script after all ...
Seems OK in general.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
New in Fedora 11: Fedora Windows cross-compiler. Compile Windows
programs, test, and build Windows installers. Over 70 libraries supprt'd
http://fedoraproject.org/wiki/MinGW http://www.annexia.org/fedora_mingw