Преводач

8/21/2013

Как се разделя даден низ в масив по определен разделител в Bash shell?

Необходимо е да използвате $IFS. Internal Field Separator е използвана за разделяне на думи в даден ред след изпълнение на вградените команди за четене. По подразбиране стойността и е:

За начало създайте променлива ns:

ns="ns1.idg.bg ns2.idg.bg ns3.idg.bg"

за да разделите $ns променливата в масив, използвайте следния IFS синтаксис:

OIFS="$IFS"
IFS=' '
read -a dnsservers <<< "${ns}"
IFS="$OIFS"

За да прочетете стойностите в създадения масив изпълнете:

echo ${dnsservers[0]}

Примерен изход:

ns1.idg.bg

Можете да използвате и for за цикъл за извеждане на всички стойности:

for i in "${dnsservers[0]}"
do 
   echo "$i"
done

Няма коментари:

Публикуване на коментар