我正在编写一个shell脚本,需要检查是否已安装终端应用程序.我想使用TRY/CATCH命令来执行此操作,除非有更简洁的方法.
我想在Bash脚本中引发错误,消息"Test cases Failed !!!".在Bash中如何做到这一点?
例如:
if [ condition ]; then
raise error "Test cases failed !!!"
fi
Run Code Online (Sandbox Code Playgroud) 有没有像linux try catch一样的linux bash命令?或者linux shell总是继续?
try {
`executeCommandWhichCanFail`
mv output
} catch {
mv log
} finally {
rm tmp
}
Run Code Online (Sandbox Code Playgroud) 所以我发现bash不处理异常(没有try/catch).对于我的脚本,我想知道命令是否成功.
这是我现在代码的一部分:
command = "scp -p$port $user:$password@$host:$from $to"
$command 2>/dev/null
if (( $? == 0 )); then
echo 'command was successful'
else
echo 'damn, there was an error'
fi
Run Code Online (Sandbox Code Playgroud)
我不明白的是:
2背后的$command?$呢?对应用程序的一个非常普遍的需求是每X分钟/小时运行一个脚本.基本上它没什么复杂的,只是一些PHP代码和一个crontab条目.
虽然我在过去几年中写过很多这些cronjobs,但我还没有看到任何最佳实践,至少没有那么多.与每次"后台处理"一样,许多事情都可能出错,尤其是在生产环境中.
其中:
编写坚如磐石,强大的cronjob脚本有哪些最佳实践?编写一个锁定文件,断言只有一个实例运行,在oder中进行大量的日志记录和监控,以防止发送数千个重复的电子邮件?你有什么想法?