Как отобразить Bash X терминалов и графика в разделенном окне представления?

Это происходит потому что Ваш while цикл выполняется в подоболочке. Переменные модификации в подоболочке не влияют на родителя.

Избегайте и канала и бесполезного использования cat путем выполнения некоторого перенаправления вместо этого:

while read line
do
    let len+=${#line}
    echo $len
done < $1

Это не требует подоболочки, так изменения в $len будет видимо в родителе.

3
08.12.2014, 13:02
1 ответ

Частичный ответ:

То, что вам нужно, это программа для просмотра изображения, которая может отображать изображение, не захватывая фокусировку клавиатуры . Тогда вы можете либо убить его и повторно запустить. (Начните его на заднем плане, а $! будет PID). Или он может прочитать список файлов для отображения из трубы или лучше, команды, такие как «отображать этот файл сейчас» с трубы, вы можете иметь постоянную трубу к ней, как одно из файловых дескрипторов.

(Я думаю, что это то, что этот вопрос: Q & A о: фоновой процесс-вход . Расширение этого, чтобы сделать новый FD в качестве FD 42, так что вы можете написать в трубу с Echo Foo> & 42 Может работать. Или, может быть, вам нужно использовать COPROC .) .)

Я оглянулся рядом, но не нашел никаких зрителей изображений, которые имели возможность не захватить фокус. Можно удалось добавить флаг, чтобы запросить это к существующему коду просмотра изображений и компилировать пользовательскую версию IT.

0
27.01.2020, 21:42

Теги

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