[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