之前 Rust读取配置文件中介绍了Rust读取json/yaml/toml格式的配置文件,还有一种较为常见的场景是读取环境变量中的信息.
使用Rust执行env操作,获取到相应内容后进行相应处理,是最直观的方式. 但是也有第三方库,已经对此做了封装.
dotenv 这个crate是不错的选择,迄今已有1700多万次下载. 但看其github 已经有数年没有更新 (大概比较基础,基本功能实现后没什么好更新的了吧…)
使用
1 2 3 4 5 6 7
| cargo init read-env cd read-env
cargo add dotenv cargo add dotenv_codegen
vim .env
|
.env:
1 2 3
| # a comment, will be ignored REDIS_ADDRESS=localhost:6379 MEANING_OF_LIFE=42
|
main.rs:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| extern crate dotenv;
use dotenv::dotenv; use dotenv_codegen::dotenv; use std::env;
fn main() { dotenv().ok();
for (key, value) in env::vars() { println!("{}: {}", key, value); }
println!("--------");
match env::var("GOPATH") { Ok(path) => println!("GOPATH is: {:?}", path), Err(e) => println!("Couldn't read GOPATH: {:?}", e), }
println!("--------");
println!("{}", dotenv!("MEANING_OF_LIFE")); }
|
执行cargo run, 输出:
1 2 3 4 5 6
| # 略过
-------- GOPATH is: "/Users/xxx/go" -------- 42
|
原文链接: https://dashen.tech/2018/07/01/Rust借助dotenv库读取环境变量/
版权声明: 转载请注明出处.