blob: b5dd89ce60c7ecf0c0d0f9f7e1159ec81e38fca0 [file] [log] [blame] [view] [edit]
# Program arguments
## Standard Library
The command line arguments can be accessed using `std::env::args`, which
returns an iterator that yields a `String` for each argument:
```rust,editable
use std::env;
fn main() {
let args: Vec<String> = env::args().collect();
// The first argument is the path that was used to call the program.
println!("My path is {}.", args[0]);
// The rest of the arguments are the passed command line parameters.
// Call the program like this:
// $ ./args arg1 arg2
println!("I got {:?} arguments: {:?}.", args.len() - 1, &args[1..]);
}
```
```shell
$ ./args 1 2 3
My path is ./args.
I got 3 arguments: ["1", "2", "3"].
```
## Crates
Alternatively, there are numerous crates that can provide extra functionality
when creating command-line applications. The [Rust Cookbook] exhibits best
practices on how to use one of the more popular command line argument crates,
`clap`.
[Rust Cookbook]: https://rust-lang-nursery.github.io/rust-cookbook/cli/arguments.html