[Linux] Bash, option -c et paramètres

Daniel Huhardeaux daniel.huhardeaux@::1
Mer 15 Oct 13:50:25 CEST 2025


Je suis un âne, désolé pour le dérangement.

Pour la postérité,$publishport n'était pas défini :(

Le 14/10/2025 à 23:32, Daniel Huhardeaux a écrit :
> Bonjour
>
> j'ai un soucis avec l'option -c de bash dans un script. Si je fais 
> dans un terminal
>
> dh@::1:~bash -c 'socat -u TCP-LISTEN:"$0",reuseaddr,fork PIPE:"$1"' 
> 8880 "/tmp/fifo.peerstatus"
>
> j'obtiens bien
>
> dh@::1:~$ ps ax|grep socat
>  485960 pts/8    S+     0:00 socat -u TCP-LISTEN:8880,reuseaddr,fork 
> PIPE:/tmp/fifo.peerstatus
>
> Mais exécuté dans un script
>
> socat() {
>   bash -c 'socat -u TCP-LISTEN:"$0",reuseaddr,fork PIPE:"$1"' 
> $publishport $mypath
> }
>
> J'obtiens
> 2025/10/14 23:10:27 socat[483789] E getaddrinfo("NULL", 
> "/tmp/fifo.peerstatus", {0x01,2,1,0}, {}): Servname not supported for 
> ai_socktype
>
> Le port est visiblement accepté $0=$publishport mais $1=$mypath 
> non,bien que la valeur affichée dans l'erreur est la bonne.
>
> Si je remplace $0 et $1 par leur valeur dans  le  script, c'est 
> fonctionnel.
>
> dh@::1:~$ bash --version
> GNU bash, version 5.2.37(1)-release (x86_64-pc-linux-gnu)
>
> Si une bonne âme avait une idée de  l'origine du problème et la 
> partagerai, avec plaisir je lirais :)






Plus d'informations sur la liste de diffusion linux