?

Log in

No account? Create an account

О сколько нам открытий чудных

« previous entry | next entry »
мар. 28, 2016 | 09:47 pm

Чую, скоро этому маленькому журнальчику (которому, кстати, уже больше 10 лет — мама дорогая!) скоро настанет полный кирдык за абсолютной нехваткой времени. Но пока этот светлый миг не настал, расскажу вам историю про дивный мир программирования.


На этот раз про Unix shell. Вот нужно вам, например, запустить процесс в фоне, но при этом сохранить с ним pipeline. После некоторого перегрева мозга рождается, например, такая конструкция:

#!/bin/sh

CTLPIPE=`mktemp`

exec 3>$CTLPIPE

tail --pid=$$ -f $CTLPIPE | $CMD $CMD_ARGS > $CMD.log &
PID=$!
tail --pid=$$ -n +1 $CMD.log &

while (ps -p $PID >/dev/null 2>&1)
do
     sleep 2
     
     read cmd

     echo "$cmd" >&3
done

rm $CTLPIPE


В основной цикл, разумеется, помимо отправки команд процессу пишется ещё много всего интересного, тут неважно, что именно. Важно то, что ты такой, весь исполненный гордости, идёшь к коллегам поделиться, а они тебе в ответ показывают:

#!/bin/bash
(
    cat <&3 &
    INPUT=$!
    ...
    sleep 3
    kill $INPUT
) 3<> "/dev/tcp/localhost/54789"


А это всё к чему выходит? Скромнее надо быть.

Ссылка | Что скажете? | Поделиться

Comments {0}