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