Сценарий Bash с помощью чтения должен прекратить выполняться на Ctrl+D

nmblookup обеспечивают USE=client net-fs/samba

 $ type nmblookup && equery belongs $(type nmblookup | cut -d ' ' -f 3)
nmblookup is /usr/bin/nmblookup
 * Searching for /usr/bin/nmblookup ...
net-fs/samba-3.6.16 (/usr/bin/nmblookup)
$ grep -B2 nmblookup /usr/portage/net-fs/samba/samba-3.6.16.ebuild
        if use client ; then
                BINPROGS="${BINPROGS} bin/smbclient bin/net bin/smbget bin/smbtree
                        bin/nmblookup bin/smbpasswd bin/rpcclient bin/smbcacls bin/smbcquotas

net-fs/samba-3.6.18 не находится в основном дереве перевозки.

$ sudo emerge --sync --quiet && equery keywords samba
Keywords for net-fs/samba:
                |                           | u   |
                | a a             p     s   | n   |
                | l m   h i m m   p s   p   | u s | r
                | p d a p a 6 i p c 3   a x | s l | e
                | h 6 r p 6 8 p p 6 9 s r 8 | e o | p
                | a 4 m a 4 k s c 4 0 h c 6 | d t | o
----------------+---------------------------+-----+-------
      3.5.21    | + + + + + o ~ + + + + + + | o 0 | gentoo
      3.5.22    | ~ ~ ~ ~ ~ o ~ ~ ~ ~ ~ ~ ~ | o   | gentoo
   [I]3.6.16    | + + + + + o o + + o o + + | o   | gentoo
      3.6.19    | ~ ~ ~ ~ ~ o o ~ ~ o o ~ ~ | o   | gentoo
    [M]4.0.8-r2 | o ~ o ~ o o o o o o o o ~ | o   | gentoo
    [M]4.0.9    | o ~ o ~ o o o o o o o o ~ | o   | gentoo
[M]4.1.0_rc3    | o ~ o ~ o o o o o o o o ~ | o   | gentoo
[M]4.1.0_rc4    | o ~ o ~ o o o o o o o o ~ | o   | gentoo

Возможно, необходимо прекратить использовать безотносительно поставщика (поставщиков) наложения Вы настроили для этого пакета и используете основной.

$ emerge --pretend --getbinpkg --quiet samba::gentoo
[binary   R   ] net-fs/samba-3.6.16
2
13.10.2014, 01:34
2 ответа

Вы перемудрили. Все, что вам нужно, это следующее:

cat > texttest.txt

Cat будет читать из STDIN, если вы не сказали ему по-другому. Поскольку он читает из STDIN, он будет реагировать на управляющий символ Ctrl+D без вашего указания. А поскольку Ctrl+D - это единственное, что завершит подпроцесс cat, вам даже не нужно оборачивать его в цикл.

5
27.01.2020, 21:51

Следующее будет делать:

while read -r LINE ; do
  echo "$LINE" >> texttest.txt
done
  1. Вам не нужно касаться файла в первую очередь
  2. t Необходимо инициализировать строку переменной
  3. Ctrl + D закрывает stdin, что делает считывание Выход с ненулевым (ложным) выходом
3
27.01.2020, 21:51

Теги

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