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...

_______________________________________________
gull mailing list
gull@forum.linux-gull.ch
http://forum.linux-gull.ch/mailman/listinfo/gull

Répondre à