当前位置:网站首页>Rust:命令行参数与环境变量操作
Rust:命令行参数与环境变量操作
2020-11-08 08:59:00 【osc_sejhgcp0】
Rust中,经常碰到命令行参数和环境变量操作。下面主要来了解一下。
一、命令行参数
从上面可以看到,std::env实现了从cargo run 命令行中提取命令行参数 a b c进入程序。
二、读取环境变量
std::env::var函数,实现了操作系统中环境变量的功能。
env::var()-> std::env::Vars
Vars是什么,很复杂,他实现了Iterator.以下是标准库中源码:
#[stable(feature = "env", since = "1.0.0")]
pub struct Vars {
inner: VarsOs,
}
/// An iterator over a snapshot of the environment variables of this process.
///
/// This structure is created by the [`std::env::vars_os`] function. See
/// its documentation for more.
///
/// [`std::env::vars_os`]: vars_os
#[stable(feature = "env", since = "1.0.0")]
pub struct VarsOs {
inner: os_imp::Env,
}
需要说明的是,环境变量中,字符并不一定是Unicode标准的,这样就会报错。这时可以用:
env::vars_os
再往下:读取特定环境变量操作
use std::env;
fn main() {
let args: Vec<String> = env::args().collect();
//println!("get command args :{:?} ", args);
//println!("get env args : ");
for (key, value) in env::vars() {
//println!(" {} => {}", key, value);
}
let key = "PATH";
match env::var(key) {
Ok(val) => {
// val is String, splited by ";"
println!("val =>{}",val);
},
Err(e) => println!("couldn't interpret {}: {}", key, e),
}
}
三、设置环境变量
一般包括:查看所有环境变量、设置新的环境变量和修改老的环境变量。
1、在cmd下
上面分别做了设置,查看单独环境变量操作、修改操作。还是比较简单。
2、powshell
#查看所有环境变量 ls env:
#搜索环境变量 ls env:NODE*
#查看单个环境变量 $env:NODE_ENV
#添加/更新环境变量 $env:NODE_ENV=development
#删除环境变量 del evn:NODE_ENV
3、linux
修改bashrc文件,这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,这里是针对某一特定的用户,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的
.bashrc文件就可以了。vi ~/.bashrc
在下面添加:
Export PATH="$PATH:/NEW_PATH"
资料来源:
https://www.cnblogs.com/Joans/p/7760378.html
版权声明
本文为[osc_sejhgcp0]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4324904/blog/4707890
边栏推荐
- 1. In depth istio: how is sidecar auto injection realized?
- Littlest JupyterHub| 02 使用nbgitpuller分发共享文件
- M 端软件产品设计思虑札记 - 知乎
- More than 50 object detection datasets from different industries
- C language I blog assignment 03
- Mate 40 series launch with Huawei sports health service to bring healthy digital life
- Golang anonymous structure member, named structure member, inheritance, composition
- ts流中的pcr与pts计算与逆运算
- 在Ubuntu上体验最新版本EROFS
- The most detailed usage guide for perconaxtradbcluster8.0
猜你喜欢
将“光头”识别为“足球”,AI 摄像头如何犯的错?
Sum up some useful functions
i5 1135g7和i5 1035g1参数对比区别大吗? 哪个好
蓝牙2.4G产品日本MIC认证的测试要求
2020天翼智能生态博览会中国电信宣布5G SA正式规模商用
C语言I博客作业03
NOIP 2012 提高组 复赛 第一天 第二题 国王游戏 game 数学推导 AC代码(高精度 低精度 乘 除 比较)+60代码(long long)+20分代码(全排列+深搜dfs)
GoLand writes a program with template
Visual studio 2015 unresponsive / stopped working problem resolution
1.深入Istio:Sidecar自动注入如何实现的?
随机推荐
1. In depth istio: how is sidecar auto injection realized?
[summary series] technical system of Internet server: high performance database index
洞察——风格注意力网络(SANet)在任意风格迁移中的应用
京淘项目知识点总结
高并发,你真的理解透彻了吗?
How does spotify drive data-driven decision making?
成功解决An error ocurred while starting the kernel
OSChina 周日乱弹 —— 之前呢,我一直以为自己是个……
swiper 窗口宽度变化,页面宽度高度变化 导致自动滑动 解决方案
Sum up some useful functions
November 07, 2020: given an array of positive integers, the sum of two numbers equals N and must exist. How to find the two numbers with the smallest multiplication?
【原创】关于高版本poi autoSizeColumn方法异常的情况
GoLand writes a program with template
i5 1135g7和i5 1035g1参数对比区别大吗? 哪个好
Introduction to ucgui
Mouse small hand
Daily challenges of search engines_ 4_ External heterogeneous resources - Zhihu
FORTRAN 77 reads some data from the file and uses the heron iteration formula to solve the problem
架构师(2020年11月)
Game mathematical derivation AC code (high precision and low precision multiplication and division comparison) + 60 code (long long) + 20 point code (Full Permutation + deep search DFS)