我在Mac OS X上並使用sed進行就地替換。在OS X上使用sed和shell變量進行路徑替換
基本上我有這樣的:
#!/bin/sh -e
PREFIX="$1"
sed -i bak -e 's|OCAMLDIR|"${PREFIX}"|g' ocamloptrev
凡PREFIX
是一個路徑,所以我使用的|
。
不幸的是,文件路徑變量是沒有得到我預期的評估,我結束了:
OCAMLC="${PREFIX}"/bin/ocamlopt
我怎樣才能得到的${PREFIX}
評價權到sed
命令?
如果'$ {PREFIX}'包含空格等等。你應該括在雙引號中的第一個代碼會碰到的問題:'「S | OCAMLDIR |」「$ {PREFIX}」'| g''是安全的。否則,你的答案很好。 –
你是完全正確的,修復。謝謝! – Will