erra (erra) wrote,
erra
erra

Categories:

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

Чую, скоро этому маленькому журнальчику (которому, кстати, уже больше 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"


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

Tags: tech, картинки, юмор
Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments