我想在bash中编写一个脚本,用于部署/修补,几乎只需要最少的用户交互: -
基本上会有以下模块/案例: -
1。)全新安装(部署a.war,b.war,c.war并为各自的战争创建数据库)
像
2。)只更新a.war
3。)只更新b.war
4.)只更新c.war
5.)仅更新a.war的数据库
6。)仅更新b.war的数据库
7.)仅更新c.war的数据库
8。)更新a.war及其db
9。)更新b.war及其db
10.)更新c.war及其db
和其他组合......
基本上我正在考虑使用一个conf文件,我会在其中阅读像
这样的可用文件构建: - 000000 - >将采取全新安装
100000 - >只更新a.war
010000 - >只更新b.war
001000 - >只更新c.war
100100 - >更新a.war及其数据库
并基于案例。我从conf文件中得到了我可以调用各自的函数。
这种方法的缺点是我必须克服各种组合的案例值。
这是我的方案的唯一方法,还是我可以尝试别的东西?
请建议:---
答案 0 :(得分:0)
cut
命令可以从一行读取特定字符:
E.g。
conf=001000
update_a=$(echo $conf | cut -b1)
update_b=$(echo $conf | cut -b2)
update_c=$(echo $conf | cut -b3)
但是,如果您从conf文件中读取这些内容,您可能希望以shell语法编写该文件,然后只需source
:
myconfig.txt:
update_a=false
update_b=false
update_c=true
script.sh:
. myconfig.txt
if $update_a; then
....
fi
if $update_b; then
....
fi
if .....
或者,您可以用简单的单词编写配置,只使用大小写:
myconfig.txt:
update_c update_f do_whatever
script.sh:
config=`read myconfig.txt`
case "$config" in
*update_a* )
....
;;
*update_b* )
....