首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >trap命令在shell中的使用

trap命令在shell中的使用
EN

Stack Overflow用户
提问于 2012-04-13 10:45:59
回答 1查看 1.1K关注 0票数 2

我试图在这里捕获出口代码"0“。每当退出代码0被捕获时,就会在trap中调用check函数,在那里我试图使用命令hascli -rn /重新启动HW,但是每次都会跳过这个命令执行。

代码语言:javascript
复制
#!/bin/bash
source $TCE_COMMON
source commonFunctions.sh
trap "
     check
     " 0
checkRGservices
function check
{
 hascli -rn /
 %SLEEP 300
 %NODE none
 #!/bin/bash
 source $TCE_COMMON
 source commonFunctions.sh
 checkForCoreFiles
}

有人能帮我摆脱这一切吗。

提前谢谢你,马希。

EN

回答 1

Stack Overflow用户

发布于 2012-04-16 13:02:54

正如威廉已经假定的:

与C或Java等语言不同,编译器在程序启动前扫描整个程序,shell以自顶向下的方式解释。因此,为了能够使用函数check(),您必须在此之前定义它。错误消息check: command not found是解决这类问题的有力指示。解决方案:将check()的函数定义移到trap命令的上方。

陷阱命令的一个注意事项:正如bobah所述,在trap命令中使用关键字(这里:EXIT)而不是数字(这里:0)。它提高了代码的可读性和可移植性,因为并非所有*NIX变体都使用相同的数字(虽然'0‘是这里的特例)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10139374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档