Ваша проблема в этой строке:
elif [ ! -f "$result" ]
Это буквально означает «иначе, если $result
не файл». Так как вы устанавливаете результат на вывод pinky, это явно не то, что вы думаете. Так как вы проверяете, является ли результат переменной пустым или нет в исходном операторе if, все, что вам здесь нужно, это else
.
. Также имеется встроенный способ проверки пустой переменной с помощью test ( [
). Вы можете проверить с опцией -n
. Было бы удобнее использовать это в вашем if
блоке так:
if [ -n "$result" ]; then
# found
else
# not found
fi
Тогда нет необходимости в переменной result_length
.
Кроме того, в этом нет необходимости. повторно запустить мизинец для awk. У вас есть результат pinky, хранящийся в вашей переменной result
. Все, что вам нужно сделать, это отправить переменную в awk с помощью строки here. Как то так:
FNAME="$(awk '{print $2}' <<< "$result")"