У меня есть этот простой сценарий 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!
Есть идеи, почему он не отображается строка за строкой? Спасибо
если вы хотите распечатать строки, вам нужно использовать , пока вы читаете строку
, используя , пока вы читаете
, вы будете читать строки за строкой, например:
while read line;do echo $line ;done < /etc/passwd