NUMBER_OF_PORTS
пусто. Это дает мне ту же ошибку:
i=1
NUMBER_OF_PORTS=""
while (("$i" <= "$NUMBER_OF_PORTS")); do
echo "hello hello $i"
i=$(( $i+1 ))
done
Ваша команда awk выглядит очень неловко. Попробуйте это:
NUMBER_OF_PORTS=$(awk '/^number of ports:/ {print $4}' Config_input.txt)
Вы уверены, что строка "количество портов:" появляется в вашем текстовом файле? Есть ли пробел после двоеточия?
Несколько комментариев о вашем цикле while: ((...))
- это арифметическая оценка, поэтому вам не нужны строки там. Кроме того, можно использовать только имена переменных (без $
), поэтому вы можете написать немного более элегантно:
while (( i <= NUMBER_OF_PORTS )); do
echo "hello hello $i"
(( i++ ))
done
Обновление: На основании вашего комментария попробуйте это:
NUMBER_OF_PORTS=$(awk -v RS='\r\n' '/^number of ports:/ {print $4}' Config_input.txt)