Mac上的Mongoimport因文件路径中的变量而失败

时间:2014-10-22 18:30:41

标签: json mongodb mongoimport

我正在尝试将json文件导入mongo。当我使用此行导入文件时,它可以工作:

mongoimport -d reps_development -c users --jsonArray --file ~/reps/scripts/mockUserData.json

该脚本使用环境变量$ REPS_ROOT,该变量在我的.bash_profile中设置。这一行失败了:

mongoimport -d reps_development -c users --jsonArray --file $REPS_ROOT/scripts/mockUserData.json

我使用以下命令设置$ REPS_ROOT:

export REPS_ROOT="~/reps"

有关为什么这不起作用的任何想法?我得到的错误是:

file doesn't exist: ~/reps/scripts/mockUserData.json

1 个答案:

答案 0 :(得分:0)

Bash将$REPS_ROOT扩展为~/reps,这将成为价值。 Bash不会再次扩展该值。如果该变量的值包含相对路径,则需要确保它已展开。例如:

mongoimport -d reps_development -c users --jsonArray --file $(cd $REPS_ROOT; pwd)/scripts/mockUserData.json

如果您使用的是Linux,则可以使用$(readlink -f $REPS_ROOT)代替。或者,您可以使用$HOME代替~

export REPS_ROOT="$HOME/reps"