Sujet : Re: script bash substitution email subject
De : chris (at) *nospam* novazur.fr (Christophe PEREZ)
Groupes : fr.comp.os.linux.configurationDate : 02. Sep 2022, 05:18:14
Autres entêtes
Organisation : Aioe.org NNTP Server
Message-ID : <20220901231814.7764804b@coffee.novazur.fr>
References : 1
User-Agent : Claws Mail 4.1.0 (GTK 3.24.34; x86_64-pc-linux-gnu)
Le Wed, 31 Aug 2022 16:29:24 -0400,
Christophe PEREZ <
chris@novazur.fr> a écrit :
J'imagine que c'est un cas d'école, que peut-être certains ici ont
déjà résolu pour leurs besoins.
Et bien je m'attendais à un peu plus d’enthousiasme ;)
Au final, je n'ai rien trouvé de mieux que de passer par un outils
annexe (ifne du package moreutils) (*) et mon script bash devient :
#!/bin/bash
[ -n "$1" ] && SUBJECT="$1" || SUBJECT="No subject"
INPUT=$(ifne cat -)
[ -n "$INPUT" ] && echo "$INPUT" | mail -s "$SUBJECT" $USER
Si quelqu'un a un commentaire à faire, je reste toujours preneur et
curieux.
(*) plus exactement, j'ai récupéré un source de quelques lignes, à
compiler, qui fait le job comme ifne, et que j'ai packagé pour gentoo,
et qui s'utilise comme ifne :
https://unix.stackexchange.com/a/498065/374007Source fionread.c :
#include <unistd.h>
#include <poll.h>
#include <sys/ioctl.h>
#ifdef __sun
#include <sys/filio.h>
#endif
#include <err.h>
int main(int ac, char **av){
int r; struct pollfd pd = { 0, POLLIN };
if(poll(&pd, 1, -1) < 0) err(1, "poll");
if(ioctl(0, FIONREAD, &r)) err(1, "ioctl(FIONREAD)");
if(r < 1) return 1;
if(++av, --ac < 1) return 0;
execvp(*av, av);
err(1, "execvp %s", *av);
}