我编写了一个bash脚本,以从MongoDB集合中删除旧文档。而且我以某种方式无法使脚本使用变量:
#!/bin/bash
MONGO_USER="username"
MONGO_PWD="userpassword"
DATE=$(date --date="$1" +"%Y-%m-%d")
PREV_MONTH=$(date --date="$DATE -2 months" +"%Y-%m-%d")
echo "Removing data from before $PREV_MONTH"
mongo -u $MONGO_USER -p $MONGO_PWD --authenticationDatabase dbName dbName --eval 'printjson(db.collection.remove({ "data.recorded_at" : {"\$lt" : "${PREV_MONTH}T00:00:00Z" } }))'
mongo -u $MONGO_USER -p $MONGO_PWD --authenticationDatabase dbName dbName --eval 'printjson(db.collection.remove({ "data.recorded_at" : {"\$lt" : "2018-07-01T00:00:00Z" } }))'
echo "Done."
即使字符串正确,第一行也不会删除任何内容(例如,如果我用bash my_script.sh 2018-09-01
调用脚本,它将计算PREV_MONTH
至2018-07-01
。
我做错了什么?