首页 > 编程语言 >rust程序中设置和访问环境变量

rust程序中设置和访问环境变量

时间:2024-04-20 10:33:42浏览次数:13  
标签:文件 unwrap 访问 env dotenv println 环境变量 rust

在项目中,我们通常需要设置一些环境变量,用来保存一些凭证或其它数据,这时我们可以使用 dotenv 这个 crate。

1、添加crate依赖

首先在项目中添加 dotenv 这个依赖:

 

 2、添加.env文件

在开发环境下,我们可以在项目根目录下创建和编辑 .env 这个文件:

 在运行环境下,这个.env文件要拷贝到exe文件所在目录。

 

3、编辑main.rs

use std::env;
use dotenv::dotenv;

fn main() {
    dotenv().ok();

    for(k,v) in env::vars(){
        println!("{}:{}",k,v);
    }
    
    println!("PATH:{}",env::var("PATH").unwrap());
    println!("DB:{}",env::var("DB_URL").unwrap());
    println!("LOG:{}",env::var("LOG_LEVEL").unwrap());
}

注意使用dotenv().ok(); 将.env文件的值注入系统环境变量的这一行,使用ok()而不是unwrap(),确保在加载 dotenv 环境文件失败的时候可以忽略错误。

4、cargo run

注意观察环境变量中已经存在DB_URL和LOG_LEVEL

 

标签:文件,unwrap,访问,env,dotenv,println,环境变量,rust
From: https://www.cnblogs.com/zjw0901/p/18147298

相关文章

  • Lmod环境变量管理工具安装
    介绍Lmod是一个用于管理环境模块的工具,通常用于大型计算机集群或超级计算机上。它能够帮助用户加载、卸载和切换软件包、库和其他环境设置,使得在不同软件版本之间进行切换变得简单。Lmod支持模块缓存、版本控制和自定义模块目录,可以根据用户需求进行灵活配置。它还提供了丰富的命......
  • 若依框架中配置使得每次打包不修改前端访问接口IP和端口
    1.添加配置文件配置文件中的数据和application.yml中的context-path保持一致 2.添加配置代码<scripttype="text/javascript">document.write("<scriptsrc='./static/config.js?v="+newDate().getTime()+"'><\/script>");&......
  • 使用bat切换java版本环境变量
    使用bat切换java版本环境变量需求有多个项目,每个项目依赖的java版本不同,需要切换java版本。或者想试用java新版本新特性,需要切换java版本。针对以上情况,Windows情况虽然修改一下环境变量JAVA_HOME即可,但也相对繁琐,一开始在找有没有类似nvm这种工具,但是找的过程看到一篇文章......
  • 50个Rust新手常犯的错误:看看你中过几条?
    错误地使用可变和不可变借用letmutdata=vec![1,2,3];letx=&data[0];data.push(4);println!("{}",x);不能在有不可变引用时修改数据。忘记处理Optionfnmain(){letsome_number=Some(5);letsum=some_number+5;//错误:Option类型不能这......
  • C++ 类方法解析:内外定义、参数、访问控制与静态方法详解
    C++类方法类方法,也称为成员函数,是属于类的函数。它们用于操作或查询类数据,并封装在类定义中。类方法可以分为两种类型:类内定义方法:直接在类定义内部声明和定义方法。类外定义方法:在类定义内部声明方法,并在类外部单独定义方法。类内定义方法在类定义内部可以直接声明和......
  • swift通过Mirror访问对象所有的存储属性
    Mirror用途:获取到对象的全部属性的key、value。示例:点击查看代码classPerson{privatevarname:Stringprivatevarage:Intvaraddress:StringvarsaySomething:String{return"helloworld"}init(name:String,age:Int,address:Stri......
  • Kubernetes dashboardv2.7.0 无法访问解决过程
    问题及报错:K8S部署前端可视化dashboard插件成功后,但是运维一段时间后发现访问不了了。 排查过程:1、查看pod状态,发现拉镜像失败。我就很奇怪怎么又拉镜像了。1kubectlgetpod-nkubernetes-dashboard23kubectldescribepodkubernetes-dashboard-6c7ccbcf87-kz7q9-n......
  • NVM安装和环境变量配置
    1.卸载node(没有安装的可以直接跳过)nvm是一个nodejs的版本管理工具。通过它可以安装和切换不同版本的nodejs,解决node各种版本存在不兼容现象。但在安装之前需要先卸载之前的nodejs1)在控制面版或者应用列表中卸载nodejs2)不行就全局搜索然后删除相......
  • Rust简易入门(六)
    Trait特质Trait是一种定义方法签名的机制,特质允许你定义一组方法的签名,但可以不提供具体的方法实现任何类型都可以实现特质,只要他们提供了特质中定义的所有方法。这是的你可以为不同类型提供相同的行为内置常量:const,整个生命周期都是有效的默认实现多重实现:类型可以实......
  • Effective Python:第6条 把数据结构直接拆分到多个变量里,不要专门通过下标访问
    使用拆分(unpacking),就可以把元组里面的元素分别赋给多个变量。优点:1,通过unpacking来赋值要比通过下标去访问元组内的元素更清晰,而且这种写法所需的代码量通常比较少。2,便于原地交换两个变量;tb=[1,2]tb[0],tb[1]=tb[1],tb[0]print(tb)3,for循环或者类似的结构(例如推......