In this code snippet, I would like to run an application with a URL payload based on date and time. This code will be executed in a specific schedule everyday and I would like to dynamically inject the date and time in the program argument when the program executes.

./json2csv rules.json "ncp" "http://localhost:8080/api/zget?eid=get-ncp-mv-by-starttime-endtime&starttime;=$(date --date='yesterday' +\%Y-\%m-\%d)+00:00:00&endtime;=$(date --date='yesterday' +\%Y-\%m-\%d)+23:59:00&container;=false" > $(echo "nercc_mv_$(date --date='yesterday' +\%Y-\%m-\%d).csv")

The way to do this is using the Bash String Manipulation

Inside a string, the bash will evaluate statement inside “$()” in this example:

$(date –date=‘yesterday’ +%Y-%m-%d)

"http://localhost:8080/api/zget?eid=get-ncp-mv-by-starttime-endtime&starttime;=$(date --date='yesterday' +\%Y-\%m-\%d)+00:00:00&endtime;=$(date --date='yesterday' +\%Y-\%m-\%d)+23:59:00&container;=false"

The resulting string after bash string manipulation will be like this

http://localhost:8080/api/zget?eid=get-ncp-mv-by-starttime-endtime&starttime;=2018-09-27+00:00:00&endtime;=2018-09-27+23:59:00&container;=false