Linux命令提示符读取并将日期传递给java -D选项

时间:2013-06-13 13:50:00

标签: java hadoop

我正在使用hadoop进行Map Reduce作业,其中运行作业的命令如下所示

jar path_to_jar.jar -Dmongo.input.query=' {"created_at":"2013-06-13"}' path_to_config_class

当我手动传递创建的日期时,这工作正常,但我应该如何使其动态,说我想在一天运行一次的cron作业中添加它,并且在运行时我需要采取 系统的当前日期和通过。

我发现我可以在Linux提示符下使用date +"%Y-%m-%d"获取2013-06-13(当前日期),但如何使用-D选项传递它?

感谢。

2 个答案:

答案 0 :(得分:1)

试试这个:

$(date +%Y-%m-%d) //execute

所以你在终端窗口中的命令看起来像

jar path_to_jar.jar -Dmongo.input.query=' {"created_at":"'$(date +%Y-%m-%d)'"}' path_to_config_class

答案 1 :(得分:1)

您可以使用printf命令:

# Generate query
QUERY=$(printf ' {"created_at":"%s"}' $(date +%Y-%m-%d))
# Use it as an argument
jar path_to_jar.jar -Dmongo.input.query="$QUERY" etc etc