Deutsch   English   Français   Italiano  
<20220901231814.7764804b@coffee.novazur.fr>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder8.news.weretis.net!usenet.goja.nl.eu.org!aioe.org!3my8gGK7ESrpx0+4iQgUXA.user.46.165.242.75.POSTED!not-for-mail
From: Christophe PEREZ <chris@novazur.fr>
Newsgroups: fr.comp.os.linux.configuration
Subject: Re: script bash substitution email subject
Date: Thu, 1 Sep 2022 23:18:14 -0400
Organization: Aioe.org NNTP Server
Message-ID: <20220901231814.7764804b@coffee.novazur.fr>
References: <20220831162843.43e97042@coffee.novazur.fr>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Injection-Info: gioia.aioe.org; logging-data="34196"; posting-host="3my8gGK7ESrpx0+4iQgUXA.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
X-Notice: Filtered by postfilter v. 0.9.2
X-Newsreader: Claws Mail 4.1.0 (GTK 3.24.34; x86_64-pc-linux-gnu)
Bytes: 2289
Lines: 43

Le Wed, 31 Aug 2022 16:29:24 -0400,
Christophe PEREZ <chris@novazur.fr> a =C3=A9crit :

> J'imagine que c'est un cas d'=C3=A9cole, que peut-=C3=AAtre certains ici =
ont
> d=C3=A9j=C3=A0 r=C3=A9solu pour leurs besoins.

Et bien je m'attendais =C3=A0 un peu plus d=E2=80=99enthousiasme ;)
Au final, je n'ai rien trouv=C3=A9 de mieux que de passer par un outils
annexe (ifne du package moreutils) (*) et mon script bash devient :

#!/bin/bash
[ -n "$1" ] && SUBJECT=3D"$1" || SUBJECT=3D"No subject"
INPUT=3D$(ifne cat -)
[ -n "$INPUT" ] && echo "$INPUT" | mail -s "$SUBJECT" $USER

Si quelqu'un a un commentaire =C3=A0 faire, je reste toujours preneur et
curieux.

(*) plus exactement, j'ai r=C3=A9cup=C3=A9r=C3=A9 un source de quelques lig=
nes, =C3=A0
compiler, qui fait le job comme ifne, et que j'ai packag=C3=A9 pour gentoo,
et qui s'utilise comme ifne :
https://unix.stackexchange.com/a/498065/374007

Source 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 =3D { 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);
}