Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sed没有像其他linux命令那样显示退出状态_Linux_Bash_Shell_Sed_Exit Code - Fatal编程技术网

sed没有像其他linux命令那样显示退出状态

sed没有像其他linux命令那样显示退出状态,linux,bash,shell,sed,exit-code,Linux,Bash,Shell,Sed,Exit Code,无论是否修改,这两种情况下的sed命令退出状态都相同,并且返回的退出状态与0相同。如果它发生了更改,我希望将其设置为0,如果没有修改任何内容,则设置为1 如果grep命令在找到某个字符串时返回0,如果找不到则返回1,同样,如果sed命令修改文件,则返回0,而sed命令不修改任何内容,则返回1 我尝试使用sed内部的'q'命令,但没有效果。请帮助我。答案是“因为sed就是这样实现的” 如果您想查看是否进行了任何更改 $ cat file aa Baa CaaD $ sed -i -e 's/aa

无论是否修改,这两种情况下的sed命令退出状态都相同,并且返回的退出状态与0相同。如果它发生了更改,我希望将其设置为0,如果没有修改任何内容,则设置为1

如果grep命令在找到某个字符串时返回0,如果找不到则返回1,同样,如果sed命令修改文件,则返回0,而sed命令不修改任何内容,则返回1

我尝试使用sed内部的'q'命令,但没有效果。请帮助我。

答案是“因为sed就是这样实现的”

如果您想查看是否进行了任何更改

$ 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就是这样实现的”

如果您想查看是否进行了任何更改

$ 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在无法读取文件或使用无效模式调用文件时返回错误,但在未进行替换时不会返回错误。正如@cnicutar注释的那样,命令的返回代码表示命令是否成功执行。与您在代码/脚本中实现的逻辑无关“它必须”--说是谁?查看grep命令是否在找到某个字符串时返回0,如果没有,则返回1,同样,如果sed命令修改文件,它必须返回0,并且sed命令不修改任何内容,那么它必须返回1。可能的重复项,但此处没有错误。我希望sed在无法读取文件或使用无效模式调用文件时返回错误,但在未进行替换时不会返回错误。正如@cnicutar注释的那样,命令的返回代码表示命令是否成功执行。与您在代码/脚本中实现的逻辑无关“它必须”--是谁说的?查看grep命令是否返回0(如果找到某个字符串),如果没有,则返回1(如果sed命令修改文件,则必须返回0),而sed命令不修改任何内容,则必须返回1。确定,在这种情况下,我可以对我的案例使用简单的grep。谢谢。好的,在这种情况下,我可以使用简单的grep来处理我的案例。非常感谢。