【发布时间】:2016-06-07 09:41:23
【问题描述】:
我将代理变量注入到 shell 脚本中。我必须转义字符串,因为中间有一个空格。
sed -i -e 's#UseConcMarkSweepGC#UseConcMarkSweepGC $PROXY_ARGS#g' ${TEST_HOME}/bin/test.sh
现在这总是在最后生成另一个文件 -e,所以我最终得到 test.sh 和 test.sh-e。两者都是一样的。目前我正在做
rm test.sh-e
在sed 之后工作正常。我想知道是否有办法根本不生成临时文件?我无法删除-e,因为我收到了错误sed: -i may not be used with stdin。
【问题讨论】:
-
你可能在 Mac OS X 下,是吗?
-
是的,我在 Mac OS X 上
-
好的。然后我注意到该行为是特定于 OS X 的,因此我将其作为副本关闭,chepner 对此进行了很好的解释。