У меня есть следующая проблема. Предположим, что [email protected]
содержит только действительные файлы. Переменная file
содержит имя текущего файла (в настоящее время файл "on"). Затем переменная element
содержит данные в формате file:function
.
Теперь, когда переменный элемент не пуст, его следует поместить в массив. И эта проблема. Если я эхо element
, он содержит именно то, что я хочу, хотя он не хранится в массиве, поэтому для цикла ничего не распечатывает.
Я написал два способа, которые я пытаюсь вставить элемент в массив, но не работает. Можете ли вы сказать мне, что я делаю неправильно, пожалуйста?
Я использую Linux Mint 16.
#!/bin/bash
nm [email protected] | while read line
do
pattern="`echo \"$line\" | sed -n \"s/^\(.*\):$/\1/p\"`"
if [ -n "$pattern" ]; then
file="$pattern"
fi
element="`echo \"$line\" | sed -n \"s/^U \([0-9a-zA-Z_]*\).*/$file:\1/p\"`"
if [ -n "$element" ]; then
array+=("$element")
#array[$[${#array[@]}+1]]="$element"
echo element - "$element"
fi
done
for j in "${array[@]}"
do
echo "$j"
done