Я получил запрос на передачу списка IP-адресов в виде массива в сценарии bash. Например:
./myscript.sh 192.168.0.1,192.168.0.10,192.168.0.15 ......
IP-адреса в приведенном выше параметре должны правильно заполнять массив, присутствующий в сценарии bash. Хотелось бы, чтобы кто-нибудь мог показать это в связке с утилитой getopts.
К вашему сведению - я новичок в bash, поэтому, пожалуйста, поймите ...





Сначала вам нужно удалить запятые из ввода, sed позаботится об этом.
Затем вы можете создать массив только с синтаксисом var=().
#! /bin/bash
no_commas=`echo $1 | sed -e 's/,/ /g'`
ip_array=($no_commas)
for addr in ${ip_array[@]}; do
echo "Address: $addr"
done
Что дает мне:
$./bash_array.sh 192.168.1.33,192.168.2.3
Address: 192.168.1.33
Address: 192.168.2.3
Здесь есть хорошая документация - tldp.org/LDP/Bash-Beginners-Guide/html/sect_10_02.html
Непонятно, о чем вы на самом деле спрашиваете. Пожалуйста, предоставьте более подробную информацию. В нынешнем виде
"$@"вполне достаточно.