我有这样的表达:做SED只删除是否存在变量
// Initially variables set to "" before process
HOSTS_APACHE=""
HOSTS=""
// Some process ...
export HOSTS_CANAL_TMP=$(echo $HOSTS | sed "s/$HOSTS_APACHE//")
它运作良好,当Apache主机一组主机的存在(处理后)。但是当我有一组主机时($HOSTS
),并且我没有任何要排除的apache主机时,它不起作用。
所以我需要一个类似的表达式来做SED $HOSTS_APACHE
以防在$HOSTS
中有apaches,并且在没有的情况下不做任何事情。
现在,当没有$HOSTS_APACHE
在$HOSTS
sed: -e expression #1, char 0: no previous regular expression
使用'if'语句来测试'$ HOSTS_APACHE'中是否有任何内容。 – Barmar 2014-11-05 16:13:52
这看起来不太好。什么是'$ HOSTS'和'HOSTS_APACHE'的典型内容? (因为复数,我担心情况会更糟)。此外,你的命令相当于参数扩展:'export HOSTS_CANAL_TMP =“$ {HOSTS/$ HOSTS_APACHE /}”'(它不会遇到你遇到的问题),除非你在$ HOSTS_APACHE中有一些正则表达式'。你能否解释你想达到的目标(你知道,ProblemXY),而不是问你想要解决你原来的问题的方法。 – 2014-11-05 16:22:11