【发布时间】:2012-04-11 00:38:03
【问题描述】:
我正在构建一个 bash 脚本,例如,我想将“${PRODUCT_NAME}”替换为“WORD”。 问题是“$”,在 bash 中 $ 代表一个参数,所以当我运行脚本时
echo "Replace ${PRODUCT_NAME} with $1 in document.txt"
for file in $(grep -il ${PRODUCT_NAME} ~/Documents/tmp/document.txt)
do
sed -e "s/${PRODUCT_NAME}/$3/g" $file > /tmp/tempfile.tmp
mv /tmp/tempfile.tmp $file
done
脚本将 ${PRODUCT_NAME} 识别为参数,而不是我要替换的单词。我如何让它识别“${PRODUCT_NAME}”是一个词而不是一个参数,所以我可以替换它?
【问题讨论】:
-
您可能想提及您想替换 literal 出现的
${PRODUCT_NAME}而不是那个 Bash 变量的值... -
这就是我使用引号的原因。
标签: bash unix replace grep arguments