免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 24822 | 回复: 11
打印 上一主题 下一主题

如何忽略脚本中某行出错继续执行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-17 10:58 |只看该作者 |倒序浏览
譬如,我脚本中有一行
a=$b
但b未赋值,导致这一行报错:Parameter not set,而使脚本中止退出
我想如何能忽略这个报错,而继续执行脚本。(其他原因,不能提前对b设初始值)
对trap不熟,不知能trap能不能实现

论坛徽章:
0
2 [报告]
发表于 2011-03-17 11:06 |只看该作者
试试 shell 字符串的参数替换

default="##################"
${b::-default}

判断$b 的值是否为 $default, 再作判断

坐等高手给出其他答案

论坛徽章:
1
巳蛇
日期:2013-10-28 15:55:33
3 [报告]
发表于 2011-03-17 12:31 |只看该作者
楼上多打了个:

论坛徽章:
0
4 [报告]
发表于 2011-03-17 12:42 |只看该作者
恩 的确

论坛徽章:
0
5 [报告]
发表于 2011-03-17 13:55 |只看该作者
本帖最后由 zjdick 于 2011-03-17 14:01 编辑

回复 2# chenbin200818


我的情况是这样的
for i in ...
do
        eval [ -z \${${i}_Value} ] && eval ${i}_Value=0
        eval Value=\${${i}_Value}
done

执行是,不知道如何是好
+ eval [ -z ${aaa_Value} ]
test.sh[59]: aaa_Value: Parameter not set.
+ echo logout
logout

论坛徽章:
0
6 [报告]
发表于 2011-03-17 14:21 |只看该作者
为何单独执行又可以,放到脚本中就有问题呢
$i=aaa
$ eval [ -z \${${i}_MonLastValue} ] && eval ${i}_MonLastValue=0   
$ echo $aaa_MonLastValue
0

论坛徽章:
0
7 [报告]
发表于 2011-03-17 15:01 |只看该作者
太复杂的我也解不出来, 不过可以找个替代办法

看看这个行不行
A=""
func(){
i=aaa
aaa_MonLastValue=2
eval  A="\${${i}_MonLastValue}"
}

func
echo $A

静等 高手解答

论坛徽章:
0
8 [报告]
发表于 2011-03-17 15:15 |只看该作者
回复 7# chenbin200818


唉,我目前就用的这个办法。
但是i有几十个,可怜我先要对几十个变量设初值。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
9 [报告]
发表于 2011-03-17 16:07 |只看该作者
没错阿
./ignvar.sh
+ for i in aaa bbb ccc ddd
+ eval '[' -z '${aaa_Value}' ']'
++ '[' -z ']'
+ eval aaa_Value=0
++ aaa_Value=0
+ eval 'Value=${aaa_Value}'
++ Value=0
+ echo 0
0
+ for i in aaa bbb ccc ddd
+ eval '[' -z '${bbb_Value}' ']'
++ '[' -z ']'
+ eval bbb_Value=0
++ bbb_Value=0
+ eval 'Value=${bbb_Value}'
++ Value=0
+ echo 0
0
+ for i in aaa bbb ccc ddd
+ eval '[' -z '${ccc_Value}' ']'
++ '[' -z ']'
+ eval ccc_Value=0
++ ccc_Value=0
+ eval 'Value=${ccc_Value}'
++ Value=0
+ echo 0
0
+ for i in aaa bbb ccc ddd
+ eval '[' -z '${ddd_Value}' ']'
++ '[' -z ']'
+ eval ddd_Value=0
++ ddd_Value=0
+ eval 'Value=${ddd_Value}'
++ Value=0
+ echo 0
0

论坛徽章:
0
10 [报告]
发表于 2011-03-17 16:29 |只看该作者
计划中的错误加上continue
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP