Rust中,常常碰到命令行參數和環境變量操做。下面主要來了解一下。html
1、命令行參數linux
從上面能夠看到,std::env實現了從cargo run 命令行中提取命令行參數 a b c進入程序。
shell
2、讀取環境變量安全
std::env::var函數,實現了操做系統中環境變量的功能。bash
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標準的,這樣就會報錯。這時能夠用:this
env::vars_os
再往下:讀取特定環境變量操做spa
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), } }
3、設置環境變量
通常包括:查看全部環境變量、設置新的環境變量和修改老的環境變量。
一、在cmd下
操作系統
上面分別作了設置,查看單獨環境變量操做、修改操做。仍是比較簡單。命令行
二、powshell
#查看全部環境變量 ls env:
#搜索環境變量 ls env:NODE*
#查看單個環境變量 $env:NODE_ENV
#添加/更新環境變量 $env:NODE_ENV=development
#刪除環境變量 del evn:NODE_ENV
三、linux
修改bashrc文件,這種方法更爲安全,它能夠把使用這些環境變量的權限控制到用戶級別,這裏是針對某一特定的用戶,若是你須要給某個用戶權限使用這些環境變量,你只須要修改其我的用戶主目錄下的
.bashrc文件就能夠了。vi ~/.bashrc
在下面添加:
Export PATH="$PATH:/NEW_PATH" 資料來源: https://www.cnblogs.com/Joans/p/7760378.html