Тайм-аут не происходит при чтении из использования FIFO 'чтения'

Поиск истории в tcsh всегда ищет точное совпадение (и возрастающий и невозрастающий) ¹. Если Вы хотите поиск без учета регистра, кодируете его сами, или делаете запрос новых функций — но не задерживаете дыхание, tcsh не был активно разработан в течение многих лет.

Я рекомендую переключиться на zsh, где возрастающий поиск нечувствителен к регистру по умолчанию.

¹ С tcsh 6.17.02. Посмотрите c_search_line и e_inc_search в ed.chared.c.

2
28.07.2012, 07:36
2 ответа

Я действительно находил хороший способ сделать это:

exec 5<>/opt/data.log

while read -7 3 line <& 5; do
    echo ${line}
done

Я открываю его для чтения и записи, таким образом, сценарий не блокируется навсегда. вот descriptin: https://stackoverflow.com/a/4875924/654269

0
27.01.2020, 22:01

Вы используете удар? или некоторый другой sh? read -t kshism (также поддерживаемый ударом и zsh, но не стандартный)

Это работает в ударе, но не в тире:

$ bash -c 'echo foo | while read -t 3 xxxx ; do echo $xxxx ; done'
foo
$ dash -c 'echo foo | while read -t 3 xxxx ; do echo $xxxx ; done'
dash: 1: read: Illegal option -t
4
27.01.2020, 22:01
  • 1
    да. Я использую, избивают debian 6.0.5 –  Majid Azimi 25.07.2012, 12:59
  • 2
    я думаю, что Вы используете тире или некоторый другой минималистский sh. –  cas 25.07.2012, 13:02
  • 3
    @MajidAzimi, какова Ваша строка хижины? Если это #!/bin/sh Вы не используете удар, но dash –  Ulrich Dangel 25.07.2012, 14:43
  • 4
    Ваш является правильным, я использовал dash. но это не имеет никакого значения. посмотрите обновление. –  Majid Azimi 28.07.2012, 07:37

Теги

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