[linux shell]:借助awk工具, 用管道的方式,实现简单实用的, 多进程通信的命令设计模型
先上脚本:
#!/bin/bash
while true;do
cmdstr=`cat /home/ubuntu/cmds.fifo`
name=`echo "$cmdstr" | awk -F, '{printf $1}'`
echo $name
if [ "$name" == "run" ]; then
echo '这里实现run命令的动作'
elif [ "$name" == "stop" ]; then
echo '这里实现stop命令的动作'
fi
sleep 1
done
解析
1 接收管道过来的命令:以逗号为分隔符命令串(比如:cmd1,cmd2…)
2 借助awk工具进行解析, 得到多个子命令串(比如: cmd1)
3 根据对应的业务逻辑调用对应的功能
4 脚本其实很简单, 关键是体现一种设计思想
- 从其它进程获取用户命令
- 解析用户命令
- 执行业务功能