LINUX.ORG.RU

Подменять значение в ключе команды прямо в процессе исполнения?

 


0

1

Вводные:

cat /dev/urandom | base64 -w $COLUMNS | lolcat

Задача: Нужно, чтобы радужка, которая плывёт по экрану, выглядела как-то поинтереснее. У lolcat есть следующие замечательные ключи:

       -p f, --spread=f
              Inclination of the rainbow stripes (character widths per line hight; high values (>1000) give  almost  hori‐
              zonal stripes, low values (0.1) almost vertical ones; default: 3.0).

       -F f, --freq=f
              Frequency of the rainbow (low values around 0.0001 give almost monochromous screens; default: 0.1).
Визуал выглядел бы интереснее, если бы алгоритм окраски текста менялся раз в несколько секунд.

Неверное решение:

while true; do cat /dev/urandom | base64 -w $COLUMNS | lolcat -F $RANDOM -p $RANDOM; sleep 2; done
По замыслу, каждые две секунды лолкэт должен вызываться с новыми значениями частоты и плотности. Не могу сказать наверняка, но визуально это так не выглядит. Похоже, что он продолжает исполнятся с теми же значениями, что получил в первую итерацию цикла.

Гипотеза: Возможно, тут могут помочь системные вызовы прямо к лолкэт прямо во врямя исполнения.

Верное решение: ???



Последнее исправление: sucker (всего исправлений: 1)

Похоже, что он продолжает исполнятся с теми же значениями, что получил в первую итерацию цикла.

А посмотреть его в списке процессов не судьба? Может он вобще не вызывается раз 2 секунды, может у вас urandom не заканчивается :-).

mky ★★★★★
()
Ответ на: комментарий от mky

Да, точно. Именно потому, что urandom не заканчивается. А как можно убить уже запущенный пайп через n секунд?

sucker
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.