Назад | Перейти на главную страницу

проблема с петлей в оболочке

У меня проблема с циклом, я использовал его в своем скрипте, как показано ниже:

while read LINE 
do {
}
done

но проблема в том, что каждый раз, когда я должен нажимать ввод во время запуска скрипта, он должен был сделать это 50000 раз! как я могу изменить это на цикл, который запускается автоматически?

Могу ли я подсчитать длину моего файла, используя: lenght = `wc -l <myfile, а затем использовать его? или какое-нибудь лучшее решение?

Вы можете использовать цикл for?

for i in {1..5}
  do
  echo "I have $i bottle(s) of Mountain Dew"
done

I have 1 bottle(s) of Mountain Dew
I have 2 bottle(s) of Mountain Dew
I have 3 bottle(s) of Mountain Dew
I have 4 bottle(s) of Mountain Dew
I have 5 bottle(s) of Mountain Dew

Вы даже можете вернуться назад!

for i in {5..1}
  do
  echo "I have $i bottle(s) of Mountain Dew"
done

I have 5 bottle(s) of Mountain Dew
I have 4 bottle(s) of Mountain Dew
I have 3 bottle(s) of Mountain Dew
I have 2 bottle(s) of Mountain Dew
I have 1 bottle(s) of Mountain Dew

ваш_скрипт <5000_lines.dat

В свое время вы должны проверить "не EoF" и поставить read в петлю.

Попробуй это:

yes "" | while ....

Это отправляет поток новых строк, который может использовать ваше тело while.