Oltre alla risposta di Norman Ramsey, vorrei aggiungere che puoi citare due volte l'intera stringa (il che potrebbe rendere l'affermazione più leggibile e meno soggetta a errori).
Quindi, se vuoi cercare 'foo' e sostituirlo con il contenuto di $BAR, puoi racchiudere il comando sed tra virgolette.
sed 's/foo/$BAR/g'
sed "s/foo/$BAR/g"
Nel primo, $BAR non si espanderà correttamente mentre nel secondo $BAR si espanderà correttamente.
I tuoi due esempi sembrano identici, il che rende i problemi difficili da diagnosticare. Potenziali problemi:
-
Potresti aver bisogno di virgolette doppie, come in
sed 's/xxx/'"$PWD"'/'
-
$PWD
può contenere una barra, nel qual caso devi trovare un carattere not contenuto in$PWD
da usare come delimitatore.
Per inchiodare entrambi i problemi contemporaneamente, forse
sed '[email protected]@'"$PWD"'@'