Я пробовал все, что мог придумать, чтобы разрезать это на отдельные элементы для моего массива, но я борюсь.
Вот что я пытаюсь сделать..
(Эта команда просто вырывает IP-адреса из первого возвращенного элемента)
$ IFS=$"\n"
$ aaa=( $(netstat -nr | grep -v '^0.0.0.0' | grep -v 'eth' | grep "UGH" | sed 's/ .*//') )
$ echo "${#aaa[@]}"
1
$ echo "${aaa[0]}"
4.4.4.4
5.5.5.5
Это показывает более одного значения, когда я ищу массив для разделения 4.4.4.4
на ${aaa[0]}
и 5.5.5.5
на ${aaa[1]}
Я пытался:
IFS="\n"
IFS=$"\n"
IFS=" "
Очень смущен, так как в последнее время я много работал с массивами и никогда не сталкивался с этой конкретной проблемой.
Может кто-нибудь сказать мне, что я делаю неправильно?
$'\n'
, но зачем вам вообщеIFS
? Вы получаете два слова обратно, нормальноеIFS
разделит их правильно. - person Etan Reisner   schedule 09.01.2015IFS
, а затем заполните массив - person anubhava   schedule 09.01.2015netstat -nr | grep -v '^0.0.0.0' | grep -v 'eth' | grep "UGH" | sed 's/ .*//'
к вашему вопросу. - person Cyrus   schedule 09.01.2015