[英]sed is not showing exit status as other linux commands
$ cat file
aa
Baa
CaaD
$ sed -i -e 's/aa/AA/' file
$ echo $?
0
$ cat file
AA
BAA
CAAD
$ sed -i -e 's/aa/AA/' file
$ echo $?
0
在两种情况下,此sed命令的退出状态是否都相同,并且返回的退出状态与0相同。如果更改,我希望将其设置为0,如果未进行任何修改,我希望将其设置为1。
如果grep命令找到了某个字符串则返回0,否则返回1;如果sed命令修改了文件,则必须返回0,而sed命令没有进行任何修改,则必须返回1。
我尝试使用sed内部“ q”命令,但没有帮助。 请帮我。
答案是“因为sed的实现方式”
如果要查看是否进行了任何更改
sed -i.bak -e 's/aa/AA/' file
if diff -q file file.bak >/dev/null; then
echo no changes
else
echo something changed
fi
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.