2013-04-19 1 views
0

Привет У меня есть сценарий в запуске, но я не понимаю, почему он показывает ошибку на выполнениеBusyBox ошибка сценария конфигурации сети

#!/bin/sh 

# Starting the network interface 

PATH="/sbin:/bin:/usr/bin:/usr/sbin" 


FILENAME="/etc/ipconf" 
count=0 

while read LINE 
do 
    ipValues[count]=$(echo $LINE | awk -F'=' '{print $2}') 
    count=`expr $count + 1` 
done < $FILENAME 

echo "Setting up IP Address" 
ifconfig eth0 up 
ifconfig eth0 ${ipValues[0]} netmask ${ipValues[1]} 
echo "IP :: ${ipValues[0]} SUBNET MASK :: ${ipValues[1]}" 
route add default gw ${ipValues[2]} 
echo "Default Gateway :: ${ipValues[2]}" 

echo "Network configured properly" 

exit 0 

Вот мой файл ipconf

IPADDRESS=192.168.1.13 
SUBNETMASK=255.255.255.0 
GATEWAY=192.168.1.220 

И вот мои сценарии ошибки

ipValues[count]=192.168.1.13 Not found 
ipValues[count]=255.255.255.0 Not found 
ipValues[count]=192.168.1.220 Not found 
Setting up IP Address 
Line 20 syntax error: Bad substitution 

Мой сценарий торможения в соответствии ifconfig eth0 ${ipValues[0]} netmask ${ipValues[1]}. Является ли это назначение массива правильным, или сценарии busybox нуждаются в другом подходе?

ответ

1

Вы правы, busybox не поддерживает синтаксис массива в вашем скрипте.

Для того, чтобы установить значение, вы можете использовать

eval ipValues$count=$(echo $LINE | awk -F'=' '{print $2}') 

и читать переменные

ifconfig eth0 ${ipValues0} netmask ${ipValues1} 
echo "IP :: ${ipValues0} SUBNET MASK :: ${ipValues1}" 
route add default gw ${ipValues2} 
echo "Default Gateway :: ${ipValues2}" 
+0

+1 Спасибо. Зансибокс использует золу. –