J'ai un script bash script qui essaie d'appeler pgrep avec des arguments (simplifiés à l'extrême) :
PATTERN="'/opt/apps/bin/lighttpd.bin -f /opt/apps/etc/lighttpd/lighttpd.conf\$'"
pgrep -f $PATTERN
echo pgrep -f $PATTERN
Le résultat est le suivant :
Usage: pgrep [-cflvx] [-d DELIM] [-n|-o] [-P PPIDLIST] [-g PGRPLIST] [-s SIDLIST]
[-u EUIDLIST] [-U UIDLIST] [-G GIDLIST] [-t TERMLIST] [PATTERN]
pgrep -f '/opt/apps/bin/lighttpd.bin -f /opt/apps/etc/lighttpd/lighttpd.conf$'
Je suppose que cela signifie que l'argument n'est pas transmis à pgrep mais qu'il est transmis à echo pour une raison quelconque.
Ce que j'attends :
7632
pgrep -f '/opt/apps/bin/lighttpd.bin -f /opt/apps/etc/lighttpd/lighttpd.conf$'
Lorsque j'exécute la ligne preg seule, elle produit 7632 comme prévu.
Est-ce que je fais quelque chose de mal ? J'ai essayé avec sh, dash et bash. Même résultat, je ne vois vraiment pas le problème.