У меня есть следующая проблема. Предположим, что [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