Ваше разделение слов происходит с:
found=(`cat temp.txt`) # <- This line for target
httarr=(`cat httpport.txt`)
(оба включают UUOc (ненужное использование cat
))
Вместо использования:
mapfile -t found < temp.txt
mapfile -t httarr < httpport.txt
mapfile
(синоним readarray
) будет считывать каждую строку файла из stdin
в индексированные массивы.
Не рекомендуется, но вы также можете установить IFS
(Внутренний разделитель полей), чтобы переходить только на новые строки с:
set -o noglob ## disable globbing to protect from * in line
oldifs="$IFS" ## save current IFS
IFS=$'\n' ## set IFS to newline only
found=( $(< temp.txt) ) ## fill arrays
httarr=( $(< httpport.txt) )
IFS="$oldifs" ## restore original IFS
set +o noglob ## restore globbing (thanks to Charles)
Посмотрите вещи и дайте мне знать, если у вас есть дополнительные вопросы.