我有一个简单的脚本,它运行在FreeBSD机器上,代码如下:
#!/bin/sh
`sed -i .bak '\:#start 172.0.0.3:,\:#end 172.0.0.3:d' /usr/local/etc/racoon/racoon.conf`
echo $?它应该删除这两种模式之间的一段文字。
问题是,如果我直接从shell运行sed命令,它就能工作,如果我运行脚本,返回代码是0。
为什么会这样呢?
发布于 2010-06-18 13:13:31
后排确实没有必要(或者我理解错了)。脚本返回0的事实也是应该的:退出代码0是OK的。编辑: sed总是以0退出,即使没有替换。只有在语法出现错误时才会生成另一个退出代码。
更有趣的是:代码是否被删除?
从您的评论来看,您可能对其中的regexp和/或转义字符有问题。
https://serverfault.com/questions/152494
复制相似问题