拆分脚本功能,抽象函数
配置文件
process.cfg
[GROUP_LIST] WEB DB HADOOP YARN [WEB] nginx httpd [DB] mysql postgresql oracle [HADOOP] datanode namenode journalnode [YARN] resourcemanager nodemanager
sed -n ‘/\[GROUP_LIST]/,/\[.*\]/p‘ process.cfg | grep -v "^$" | grep -v "\[.*\]"

使用egrep 优化
sed -n ‘/\[GROUP_LIST]/,/\[.*\]/p‘ process.cfg | egrep -v "(^$|\[.*\])"
封装函数
app_status.sh
#!/bin/bash
#
# Func: Get Process Status In process.cfg
# Define Variables
HOME_DIR="/home/roo/Desktop/shell_code/day9"
CONFIG_FILE="process.cfg"
# 进程本身的pid
this_pid=$$
# 获取所有的组
function get_all_group
{
G_LIST=$(sed -n ‘/\[GROUP_LIST]/,/\[.*\]/p‘ $HOME_DIR/$CONFIG_FILE | egrep -v "(^$|\[.*\])")
echo $G_LIST
}
for g in `get_all_group`;do
echo $g
done
执行脚本
sh app_status.sh

原文:https://www.cnblogs.com/crazymagic/p/11173162.html