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

相关文章
相关标签/搜索