LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 840|回复: 12

怎样利用命令的返回值

[复制链接]
发表于 2005-8-6 18:52:09 | 显示全部楼层 |阅读模式
1,我指的是这种返回值:成功执行,返回0;不成功,非0;
在脚本中.怎样获得并利用这种返回值呢?
2,我想在文本文件中查找并删除指定的自符串,怎样在脚本中实现?(直接操作在原文件上,不是像
sed  grep 等操作在copy上)
请达人指点
发表于 2005-8-6 21:26:02 | 显示全部楼层
1. $?
回复 支持 反对

使用道具 举报

发表于 2005-8-6 23:19:25 | 显示全部楼层
比如要看一个变量是不是数字
expr $a + 1
然后检查$?是0还是1
如果$a是数字那么+1肯定成功,返回的值是0.就可以断定$a是数字.
如果$a不是数字而是其他字符串,那么+1肯定不行,返回值是1,就可以断定$a不是数字了!
回复 支持 反对

使用道具 举报

发表于 2005-8-7 14:19:29 | 显示全部楼层
2. 应该是不可能的,就是C也只能覆盖掉不要的字符串,没有办法删除。
回复 支持 反对

使用道具 举报

发表于 2005-8-7 14:39:21 | 显示全部楼层
1,
case $? in
...;;
...;;
esac
2, sed -i ....
回复 支持 反对

使用道具 举报

发表于 2005-8-7 15:21:29 | 显示全部楼层
Post by bookstack
2. 应该是不可能的,就是C也只能覆盖掉不要的字符串,没有办法删除。

难道你以为C在各方面都比Shell强?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-7 15:32:32 | 显示全部楼层
1,我看到有人这样用 if [ grep string file >mm ]  ;then  这样可以利用grep的返回值吗?
2 我想到一种方法,
  grep -v 'string' file >file1
  cp file1 file
  这样不就实现了查找并删除的目的吗. -v 帮 了大忙.
回复 支持 反对

使用道具 举报

发表于 2005-8-7 15:44:24 | 显示全部楼层
Post by yaop
1,我看到有人这样用 if [ grep string file >mm ]  ;then  这样可以利用grep的返回值吗?
2 我想到一种方法,
  grep -v 'string' file >file1
  cp file1 file
  这样不就实现了查找并删除的目的吗. -v 帮 了大忙.


>if grep pattern file;then ....;else ...;fi

>sed 's/pattern/replacement/g' file > newfile;mv newfile file

If you refuse to using sed or grep,you just make trouble by yourself
回复 支持 反对

使用道具 举报

发表于 2005-8-7 15:54:35 | 显示全部楼层
Post by yaop
1,我看到有人这样用 if [ grep string file >mm ]  ;then  这样可以利用grep的返回值吗?
2 我想到一种方法,
  grep -v 'string' file >file1
  cp file1 file
  这样不就实现了查找并删除的目的吗. -v 帮 了大忙.


1.这个不用问,自己试一下就知道了。
就是有人回答了,你不试,也不知道他答的对不对啊,实验是比较保险的方法。
像现在,我说这个在BASH中是不对的,你觉得呢?
2.有两个方法:
第一个就像你说的那个,第二个,看看上面烈火的贴子,注意红色的选项。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-7 16:07:27 | 显示全部楼层
1 Freebird 兄的方法在bash中正确
我说的那个不能用
2 烈火兄的 -i 选项是什么意思阿,我看了一下man 不太明白.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表