Ce que je voudrais faire est de quelque chose comme ce qui suit: mais je reçois ce qui suit: p> J'ai essayé de nombreuses variations. Je sais que c'est juste une question d'obtenir la cordes de citer. La raison pour laquelle je voudrais faire cela est de briser une longue commande SED pour la lisibilité. Devrais-je simplement utiliser un fichier de script SED (avec l'option -f) à la place? P> Mon script est un peu plus complexe: p> Après avoir retiré les citations simples, je reçois: p> sed: -e expression #1, char 18: unknown option to `s'
6 Réponses :
Supprimer les guillemets simples de la valeur de Email CODE>.
EMAIL="-e s/SOMETHING//g"
Retirez les citations simples et il devrait fonctionner juste bien p>
Cela a fonctionné pour moi (entourez de citations doubles):
env | sed -n /"$USERNAME"/p
C'est parce que vous faites quelque chose de complètement différent.
Pour ce type de problème de citation, vous pouvez faire l'un des éléments suivants:
#!/bin/sh SED_ARG="-e 's/SOMETHING//g'" echo SOMETHING | eval sed "$SED_ARG" echo SOMETHING | sed $SED_ARG
Tout mettre dans des guillemets simples et laissez la coquille l'évaluer plus tard lorsqu'il est utilisé.
EMAIL='-e s/bar@baz.com//g' EMAIL2='-e s/foo@bar.com//g;s/foo@bar.org//g' echo "foo@bar.com foo@bar.org foo@baz.com bar@baz.com" | sed $EMAIL $EMAIL2