我确信有一种更简单的方法可以做到这一点,但我还没弄清楚下一步该尝试什么。我们正在运行一些jboss应用程序,我希望能够使用输入参数重新启动它们。由于我希望一次重启多个应用程序,我认为列表会很好。这是逗号分隔。到目前为止我已经走了多远。
IFS=',';
while read mLine
do
for i in $mLine
do
sh jboss-{$mLine} restart
done;
done < /tmp/apps
一般来说,只要我写“sh jboss-abcdef restart”就可以了,但只要我写“jboss - $ {mLine} restart”就行了。后者将返回脚本的响应(根据输入值是正确的脚本),请求参数,您可以在此脚本的sh命令中看到该参数。前者像后者一样启动正确的脚本,但与后者不同,第一个实际重启了有问题的服务器。
有人可能会争辩说我也为每个applcation添加了一个,但是因为并不是每次都需要重新启动所有应用程序,这将使我很多,如果是这样,如果要找出哪些行必须运行,从而扼杀了整洁简单的目的......
任何想法都会受到赞赏,因为我愿意尽力寻找解决方案。
答案 0 :(得分:0)
如果你这样做:
#!/bin/sh
for app in "$@"; do
sh "jboss-$app" restart
done
然后,您可以将以空格分隔的应用名称列表传递给脚本
./restart-apps app1 app2 app3 ...