2014-02-25 4 views
1

bash 스크립트에서 mongodb에 대한 일부 명령을 실행 중이지만 문자열을 heredoc 텍스트에 삽입해야합니다. 값을 올바르게 삽입 할 수 없습니다. 어떻게이 일을 끝낼 수 있습니까?bash 스크립트에 변수 삽입 mongodb 명령 heredoc

today=`date -d "00:00:00" +%s` 
todaytime=$(($today*1000)) 
mongo <<EOF > test 
    use log 
    db.translogs.remove("{Dt: {$lt: new Date($todaytime)}}") 
    exit 
EOF 

답변

0

나는 모르지만, 그것은 $lt is part of a query 아닌 쉘 변수처럼 보인다. 그러나 귀하의 코드에서 셸은 here-doc을 mongo으로 보내기 전에 확장하려고 시도하고 있습니다. 그래서 당신이 할 필요가 탈출되어 생각 $$lt의 :

 
today=`date -d "00:00:00" +%s` 
todaytime=$(($today*1000)) 
mongo test 
    use log 
    db.translogs.remove("{Dt: {\$lt: new Date($todaytime)}}") 
    exit 
EOF 

나는 위의 코드에서 catmongo를 교체하는 경우, 우리는 같은 test 파일에 mongo에 명령 - 투 - 전송 참조 :

 
    use log 
    db.translogs.remove("{Dt: {$lt: new Date(1393315200000)}}") 
    exit 
관련 문제