понимание результата этого сценария bash [закрыто]

У меня есть этот простой сценарий bash

#!/bin/bash -x

for line in `tail /home/user/line`

 do
      echo $line
 done

но не знаю, почему он отображает все слова, а не каждую строку выводится ниже

++ tail /home/user/line
+ for line in '`tail /home/user/line`'
+ echo Linux
Linux
+ for line in '`tail /home/user/line`'
+ echo is
is
+ for line in '`tail /home/user/line`'
+ echo a
a
+ for line in '`tail /home/user/line`'
+ echo crappy
crappy
+ for line in '`tail /home/user/line`'
+ echo OS
OS
+ for line in '`tail /home/user/line`'
+ echo Do
Do
+ for line in '`tail /home/user/line`'
+ echo you
you
+ for line in '`tail /home/user/line`'
+ echo 'agree?'
agree?
+ for line in '`tail /home/user/line`'
+ echo Unix
Unix
+ for line in '`tail /home/user/line`'
+ echo is
is
+ for line in '`tail /home/user/line`'
+ echo much
much
+ for line in '`tail /home/user/line`'
+ echo better
better
+ for line in '`tail /home/user/line`'
+ echo Or
Or
+ for line in '`tail /home/user/line`'
+ echo maybe
maybe
+ for line in '`tail /home/user/line`'
+ echo Solaris
Solaris
+ for line in '`tail /home/user/line`'
+ echo 'OS?'
OS?
+ for line in '`tail /home/user/line`'
+ echo Linux
Linux
+ for line in '`tail /home/user/line`'
+ echo Linux
Linux
+ for line in '`tail /home/user/line`'
+ echo 'Linux!'
Linux!

вот текстовый файл

Linux is a crappy OS

Do you agree?

Unix is much better
Or maybe Solaris OS?
Linux Linux Linux!

Есть идеи, почему он не отображается строка за строкой? Спасибо

-1
задан 10 March 2015 в 21:50
1 ответ

если вы хотите распечатать строки, вам нужно использовать , пока вы читаете строку , используя , пока вы читаете , вы будете читать строки за строкой, например:

while read line;do echo $line ;done < /etc/passwd
1
ответ дан 5 December 2019 в 19:53

Теги

Похожие вопросы