Rust:命令行參數與環境變量操做

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

相關文章
相關標籤/搜索