0

こんにちは、起動時にスクリプトがありますが、実行時にエラーが表示される理由がわかりません

#!/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]}。この配列の割り当ては正しいですか、それともビジーボックス スクリプトには別のアプローチが必要ですか?

4

1 に答える 1

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}"
于 2013-04-19T09:15:24.083 に答える