bash 错误控制问题

sh/bash/dash/ksh/zsh等Shell脚本
回复
pswzyu
帖子: 61
注册时间: 2010-12-18 17:09

bash 错误控制问题

#1

帖子 pswzyu » 2012-07-07 19:12

有个关于bash脚本的问题, http://code.bulix.org/tjhgeh-81814, 目的是实现同步ubuntu的源, 但是因为我这个机器下载只有500kb, 所以有时候一天同步不完, 所以我加了一个锁, 但是现在有个问题, 就是如果第一个rsync超时退出后, 整个脚本就会随之退出, 导致后边删除锁文件的语句不能执行, 我想请问一下如何在一个语句出错后脚本能够继续执行
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: bash 错误控制问题

#2

帖子 YeLee » 2012-07-07 20:11

都有$?的吧,加个判断就差不多了。 :em04
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
pswzyu
帖子: 61
注册时间: 2010-12-18 17:09

Re: bash 错误控制问题

#3

帖子 pswzyu » 2012-07-07 21:00

你的意思是 是$?造成的出错退出?
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: bash 错误控制问题

#4

帖子 YeLee » 2012-07-07 21:01

善于利用程序的返回值嘛。 :em04
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
pswzyu
帖子: 61
注册时间: 2010-12-18 17:09

Re: bash 错误控制问题

#5

帖子 pswzyu » 2012-07-10 8:54

这貌似不是返回值的问题, 脚本执行到出错的程序之后就不执行后边的语句了
pswzyu
帖子: 61
注册时间: 2010-12-18 17:09

Re: bash 错误控制问题

#6

帖子 pswzyu » 2012-07-10 8:54

我想要脚本继续执行
头像
cuihao
帖子: 4793
注册时间: 2008-07-24 11:33
来自: 郑州
联系:

Re: bash 错误控制问题

#7

帖子 cuihao » 2012-07-10 9:00

hmm,会自动退出么?
如果自己不加exit的话,应该还是会进行下去的吧。
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 绿
Site: CUIHAO.TK    Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
头像
cuihao
帖子: 4793
注册时间: 2008-07-24 11:33
来自: 郑州
联系:

Re: bash 错误控制问题

#8

帖子 cuihao » 2012-07-10 9:02

我胡乱修改一下你的脚本,让rsync运行不了,最后还是进行到rm这一步了:

代码: 全选

cuihao@cuihao-arch /tmp $ bash aa.sh
aa.sh:行7: /var/programs404/repo_sync/ubuntu.log: 没有那个文件或目录
rsync: getaddrinfo: mirrors.ustc.edu 873: Name or service not known
rsync error: error in socket IO (code 10) at clientserver.c(122) [Receiver=3.0.9]
rsync: getaddrinfo: mirrors.ustc.edu 873: Name or service not known
rsync error: error in socket IO (code 10) at clientserver.c(122) [Receiver=3.0.9]
rm: 无法删除"/var/programs404/repo_sync/ubuntu.lock": 没有那个文件或目录
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 绿
Site: CUIHAO.TK    Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
回复