J'ai un script en bash (rulesdujour, avec spamassassin) qui est
défini de cette façon
[ "${SA_LINT}" ] || SA_LINT="spamassassin --lint"; # Command used to lint the rules
Or, c'est root qui lance ce script, mais je préférerais que ce
morceau soit lancé par un autre utilisateur, donc j'ai essayé
dans le fichier de configuration d'introduire un truc du genre:
SA_LINT="su - amavis -c 'spamassassin --lint'"
Malheureusement ça déconne:
***WARNING***: su - amavis -c 'spamassassin --lint' failed.
Lint output:
--lint': -c: line 0: unexpected EOF while looking for matching `''
--lint': -c: line 1: syntax error: unexpected end of file
si je colle SA_LINT=`blabla`, il est évalué avant d'être appellé,
donc ça ne va pas non plus...
Il est appellé comme ça par le script:
${SA_LINT} > /dev/null 2>&1; LINTFAILED=$?;
Pourtant, en ligne de commande, ça passe nickel:
eluard ~ # su - amavis -c 'spamassassin --lint' ; RETOUR=$?
eluard ~ # echo $RETOUR
0
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pascal Bourguignon
Arnaud Launay writes:
Salut,
J'ai un script en bash (rulesdujour, avec spamassassin) qui est défini de cette façon
[ "${SA_LINT}" ] || SA_LINT="spamassassin --lint"; # Command used to lint the rules
Or, c'est root qui lance ce script, mais je préférerais que ce morceau soit lancé par un autre utilisateur, donc j'ai essayé dans le fichier de configuration d'introduire un truc du genre:
SA_LINT="su - amavis -c 'spamassassin --lint'"
SA_LINT=(su - amavis -c 'spamassassin --lint')
[ ${SA_LINT[@]} ] || SA_LINT=(spamassassin --lint); # Command used to lint the rules
Malheureusement ça déconne: ***WARNING***: su - amavis -c 'spamassassin --lint' failed.
Lint output: --lint': -c: line 0: unexpected EOF while looking for matching `'' --lint': -c: line 1: syntax error: unexpected end of file
si je colle SA_LINT=`blabla`, il est évalué avant d'être appellé, donc ça ne va pas non plus...
"Indentation! -- I will show you how to indent when I indent your skull!"
Arnaud Launay <asl@launay.org> writes:
Salut,
J'ai un script en bash (rulesdujour, avec spamassassin) qui est
défini de cette façon
[ "${SA_LINT}" ] || SA_LINT="spamassassin --lint"; # Command used to lint the rules
Or, c'est root qui lance ce script, mais je préférerais que ce
morceau soit lancé par un autre utilisateur, donc j'ai essayé
dans le fichier de configuration d'introduire un truc du genre:
SA_LINT="su - amavis -c 'spamassassin --lint'"
SA_LINT=(su - amavis -c 'spamassassin --lint')
[ ${SA_LINT[@]} ] || SA_LINT=(spamassassin --lint); # Command used to lint the rules
Malheureusement ça déconne:
***WARNING***: su - amavis -c 'spamassassin --lint' failed.
Lint output:
--lint': -c: line 0: unexpected EOF while looking for matching `''
--lint': -c: line 1: syntax error: unexpected end of file
si je colle SA_LINT=`blabla`, il est évalué avant d'être appellé,
donc ça ne va pas non plus...
J'ai un script en bash (rulesdujour, avec spamassassin) qui est défini de cette façon
[ "${SA_LINT}" ] || SA_LINT="spamassassin --lint"; # Command used to lint the rules
Or, c'est root qui lance ce script, mais je préférerais que ce morceau soit lancé par un autre utilisateur, donc j'ai essayé dans le fichier de configuration d'introduire un truc du genre:
SA_LINT="su - amavis -c 'spamassassin --lint'"
SA_LINT=(su - amavis -c 'spamassassin --lint')
[ ${SA_LINT[@]} ] || SA_LINT=(spamassassin --lint); # Command used to lint the rules
Malheureusement ça déconne: ***WARNING***: su - amavis -c 'spamassassin --lint' failed.
Lint output: --lint': -c: line 0: unexpected EOF while looking for matching `'' --lint': -c: line 1: syntax error: unexpected end of file
si je colle SA_LINT=`blabla`, il est évalué avant d'être appellé, donc ça ne va pas non plus...