0

我确信有一种更简单的方法可以做到这一点,但我还没有弄清楚接下来要尝试什么。我们正在运行一些 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 命令中。前者就像后者一样启动正确的脚本,但与后者不同的是,第一个实际上重新启动了有问题的服务器。

有人可能会争辩说,我也为每个应用程序都放了一个类似的应用程序,但是由于并非每次都需要重新启动所有应用程序,这将使我很多 if's this 和 if's that 找出必须运行哪些行,从而击败整洁和简单的目的......

任何想法都会受到赞赏,因为我愿意尽最大努力找到解决方案。

4

1 回答 1

0

如果你这样做:

#!/bin/sh
for app in "$@"; do
    sh "jboss-$app" restart
done

然后您可以将应用名称的空格分隔列表传递给脚本

./restart-apps app1 app2 app3 ...
于 2013-07-03T12:46:20.823 回答