"可选" bash

时间:2017-03-23 17:52:16

标签: bash

给出一个简单的bash脚本,我想有一个简单的方法来根据一些变量调用bash脚本后台任务。 我想到了

PARALLEL='&'
./foo.sh $PARALLEL

但这不起作用,因为它可能被解释为一个论点。是否有可能(或黑客)做出类似的工作?不必是干净的代码......

2 个答案:

答案 0 :(得分:3)

安全(和更长)方式

使用if

if [[ ... ]]; then
    ./foo.sh &
else
    ./foo.sh
fi

...部分替换为条件,例如"$runParallel" = TRUE

如果您的命令长于./foo.sh,建议将其包装在函数中并在if内调用该函数。

不安全(但更短)的方式

使用eval

eval ./foo.sh "$parallel"
  • 如果parallel='&',命令将在后台运行。
  • 如果parallel=,命令将在前台运行,./foo.sh(根据需要)没有参数(甚至不是空参数)。
  • 如果parallel='$(rm -rf ~)'您的主目录将被删除:)

答案 1 :(得分:0)

您可以检查是否存在<servlet-name>Jersey REST Service</servlet-name> <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> <!-- Register resources and providers under com.prom.via.rest.dto package. --> <init-param> <param-name>jersey.config.server.provider.packages</param-name> <param-value>com.prom.via.rest.dto</param-value> </init-param> </servlet> 变量,并相应地调用脚本:

$PARALLEL

这不完全是你正在寻找的东西,但是你说黑客很好,所以我想我会提供替代方案。