bash - 以高效的方式重写 bash 脚本以基于服务器运行
问题描述
我正在编写一个脚本,一个逻辑片段是为了让进程在服务器上运行,我有一个函数stat_check
需要执行一些步骤。
我想知道,是否有任何有效的方法可以做到这一点并减少行数。
目标 - 想要stat_check
基于服务器传递一个唯一变量。我可以在单独的文件和/或下面提到的变量中列出服务器列表,如Servers
.
Servers=(flipunix1 flipunix2 flipunix3 flipunix7)
for i in ${Servers[*]}
do
if [ "$SERVER_NAME" == "$i" ];
then
stat_check twitter
stat_check appcreds
break 2
fi
done
if [ "$SERVER_NAME" == flipunix5 ];
then
stat_check twitter_stats
stat_check relishprogram
fi
解决方案
案例陈述在这里是合适的:
case "$SERVER_NAME" in
flipunix1 | flipunix2 | flipunix3 | flipunix7)
stat_check twitter
stat_check appcreds
;;
flipunix5)
stat_check twitter_stats
stat_check relishprogram
;;
esac
由于您在那里使用 shell 模式,您可以编写
case "$SERVER_NAME" in
flipunix[1237] ) ...
flipunix[5] ) ...
推荐阅读
- c# - EF Core Identity Foreign Key throws 每个表中的列名必须是唯一的
- sql - 是否可以为 Acolyte ScalaCompositeHandler 参数化查询或参数?
- excel - 错误“1004”无法获取工作表函数类的 sum 属性
- sql - Oracle Sql Developer 导出缓慢
- javascript - tinymce 编辑器 - 加载编辑器后添加文本
- javascript - x-editable 我可以在 jquery 中添加一个按键事件来输入吗
- c++ - C ++:如何用单个命令替换复杂的迭代?
- android - 从列表中进行 n 次异步调用,并在所有调用完成后调用方法
- .net - 绑定重定向的框架配置在哪里?
- laravel-5 - 如何在 Laravel 中配置旧项目