[gull] Truc et astuces: bash connector

Emmanuel Rens emmanuel at fastmail.com
Sun Feb 11 17:33:37 CET 2018


c'est très très cool


On 02/09/2018 10:02 AM, felix wrote:
> On Tue, Feb 06, 2018 at 05:42:44PM +0100, felix wrote:
>> ... à "sourcer" ou à lancer pour la démo:
>>    https://f-hauri.ch/vrac/shell_connector.sh
> Exemple:
>
>    $ wget https://f-hauri.ch/vrac/shell_connector.sh
>    ...
>    $ . shell_connector.sh
>    $ tty
>    /dev/pts/20
>    $ ps --tty pts/20 fw
>    PID TTY      STAT   TIME COMMAND
>    29019 pts/20   Ss     0:00 bash
>    30745 pts/20   R+     0:00  \_ ps --tty pts/20 fw
>
>    $ newConnector /usr/bin/bc "-l" '3*4' 12
>    $ ps --tty pts/20 fw
>      PID TTY      STAT   TIME COMMAND
>    29019 pts/20   Ss     0:00 bash
>    30944 pts/20   S      0:00  \_ bash
>    30945 pts/20   S      0:00  |   \_ /usr/bin/bc -l
>    30952 pts/20   R+     0:00  \_ ps --tty pts/20 fw
>
>    $ declare -p PI
>    bash: declare: PI: not found
>
>    $ myBc '4*a(1)' PI
>    $ declare -p PI
>    declare -- PI="3.14159265358979323844"
>
>    $ newConnector /bin/date '-f - +%s' @0 0
>    $ myDate '2000-01-01'
>    946681200
>    $ myDate "$(ps ho lstart 1)" boottime
>    $ myDate now now;myBc "$now-$boottime" uptime;\
>          read utm idl </proc/uptime;printf "%s\n" ${utm%%.*} $uptime
>    42134906
>    42134906
>
>    $ ps --tty pts/20 fw
>      PID TTY      STAT   TIME COMMAND
>    29019 pts/20   Ss     0:00 bash
>    30944 pts/20   S      0:00  \_ bash
>    30945 pts/20   S      0:00  |   \_ /usr/bin/bc -l
>    32615 pts/20   S      0:00  \_ bash
>    32616 pts/20   S      0:00  |   \_ /bin/date -f - +%s
>     3162 pts/20   R+     0:00  \_ ps --tty pts/20 fw
>
> J'ai donc un process `bc` (30945), qui tourne en arrière tâche et
> qui effectue tous les calculs que je lui demande, ainsi qu'un
> process `date` (32616), qui converti en *unix time stamp*, les
> dates que je lui soumet...
>
> Pour terminer un process, il faut fermer ses descripteur, dans l'ordre
> (du dernier au premier:)
>
>    $ eval "exec $DATEOUT>&-"
>    $ eval "exec $DATEIN>&-"
>    $ ps --tty pts/20 fw
>      PID TTY      STAT   TIME COMMAND
>     4936 pts/20   Ss     0:00 bash
>     5256 pts/20   S      0:00  \_ bash
>     5257 pts/20   S      0:00  |   \_ /usr/bin/bc -l
>     6358 pts/20   R+     0:00  \_ ps --tty pts/20 fw
>
> Ce qui n'est pas nécessaire, puisque les sous-tâches se terminent
> lorsque le process courrant termine.
>
>> Question et commentaires bienvenus...



More information about the gull mailing list