我已经在bash脚本中声明了一个hashmap,它的值依赖于我的环境变量。
export test_ENVIRONMENT=1
if [ -z "$test_ENVIRONMENT" ]; then
echo "Environment variable test_ENVIRONMENT is not set."
exit 1
fi
echo $test_ENVIRONMENT;
hashmap["1"]="1"
hashmap["2"]="2"
MySql="select distinct url as urls from t where
REGION=${hashmap["$test_ENVIRONMENT"]}
and visitday >= TO_DATE(SYSDATE-5,'DD-MON-YYYY')
AND visitday <= TO_DATE(SYSDATE, 'DD-MON-YYYY')
order by urls ;"
echo $mySql
exit;我使用不同的test_environment值运行该脚本三次
export test_environment=1export test_environment=2export test_environment=1在最后两次中,我的区域值被设置为2而不是1。
也就是说,在为test_envoironment设置不同的值时,第二个值总是覆盖初始值。我是不是漏掉了什么?
发布于 2012-02-06 12:09:35
你应该检查一下你的bash --version。
在bash 4.0之后支持。
https://stackoverflow.com/questions/9147884
复制相似问题