Как се разделя даден низ в масив по определен разделител в 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
Няма коментари:
Публикуване на коментар