[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