52 lines
1.5 KiB
Bash
Executable File
52 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# 获取脚本所在目录的绝对路径
|
||
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
|
||
|
||
# 切换工作目录到脚本所在目录
|
||
cd $SCRIPT_DIR
|
||
|
||
# 加载环境变量
|
||
load_env_variables() {
|
||
if [ -f ".envrc" ]; then
|
||
# 使用direnv加载环境变量
|
||
if command -v direnv &> /dev/null; then
|
||
eval "$(direnv export bash)"
|
||
|
||
# 检查REDIS_PASSWORD是否已设置,如果未设置则执行direnv allow
|
||
if [ -z "$REDIS_PASSWORD" ]; then
|
||
echo "⚠️ 检测到需要执行direnv allow来授权环境变量文件"
|
||
direnv allow
|
||
echo "🔄 重新加载环境变量..."
|
||
eval "$(direnv export bash)"
|
||
|
||
# 再次检查REDIS_PASSWORD是否设置
|
||
if [ -z "$REDIS_PASSWORD" ]; then
|
||
echo "错误: 密码验证失败,无法继续操作"
|
||
return 1
|
||
fi
|
||
fi
|
||
else
|
||
echo "错误: 未安装direnv,请先安装direnv"
|
||
return 1
|
||
fi
|
||
else
|
||
echo "错误: 找不到.envrc文件"
|
||
return 1
|
||
fi
|
||
return 0
|
||
}
|
||
|
||
# 调用函数加载环境变量
|
||
if ! load_env_variables; then
|
||
echo "无法加载环境变量,脚本退出"
|
||
exit 1
|
||
fi
|
||
|
||
# 使用环境变量或默认值
|
||
container_name=${REDIS_CONTAINER_NAME:-redis}
|
||
redis_port=${REDIS_PORT:-6379}
|
||
|
||
# 执行Redis CLI命令
|
||
docker exec -it $container_name bash -c "redis-cli -p $redis_port -a $REDIS_PASSWORD $@"
|