解析ubuntu中的.cfg文件

时间:2018-03-06 11:08:25

标签: python linux shell

如何解析?我有一个:

configs.cfg

[django]
SECRET_KEY=!bq0%%mv)u&v6=hm#)^*fpn+cg7(*4xmce=-06@_7ob$aq7my+i
LATEST_RESULTS_KEY=bQeShVmYq3t6w9z8C&FxJDNcRfUjWnZr
URL=http://example:8002
SECRET_TOKEN=ABC123
COMPANY=abc

[rabbitmq]
RABBITMQ_DEFAULT_USER=user
RABBITMQ_DEFAULT_PASS=pass
RABBITMQ_DEFAULT_VHOST=abc
RABBITMQ_HOST=rabbitmq

entrypoint.sh

celery -A project worker -l info -Q project1 --broker=amqp://${RABBITMQ_DEFAULT_USER}:${RABBITMQ_DEFAULT_PASS}@${RABBITMQ_HOST}:5672/{RABBITMQ_DEFAULT_VHOST}-n project1@%h &
celery -A project worker -2 info -Q project --broker=amqp://${RABBITMQ_DEFAULT_USER}:${RABBITMQ_DEFAULT_PASS}@${RABBITMQ_HOST}:5672/{RABBITMQ_DEFAULT_VHOST}-n project2@%h

当我运行entrypoint.sh时,它是否有可能将变量的值作为我的celery命令的选项?

1 个答案:

答案 0 :(得分:-1)

将此行添加到entrypoint.sh:

source <(sed -e 's/=/="/' -e 's/$/"/' -ne '/=/p' config.cfg)

前两个sed表达式在值周围添加双引号,以避免在两个_KEY变量中出现特殊shell字符时可能出现的错误。最后一个正则表达式使用等号过滤行。