fn main() { let command_name = std::env::args().nth(0).unwrap_or("CLI".to_string()); let name = std::env::args().nth(1).unwrap_or("WORLD".to_string()); println!("Hello {} via {}!", name, command_name); }
Running `target/debug/kakeibo arg1 arg2`
Hello arg1 via target/debug/kakeibo!
use clap::Parser; #[derive(Parser)] #[clap(version = "1.0")] struct Args { arg1: String, arg2: String } fn main() { let _args = Args::parse(); }
use clap::{Parser, Subcommand}; #[derive(Parser)] #[clap(version = "1.0")] struct App { #[clap(subcommand)] command: Command, } #[derive(Subcommand)] enum Command { /// 新しい口座を作る New, /// 口座に入金する Deposit, /// 口座から出金する Withdraw, /// CSVからインポートする Import, /// レポートを出力する Report, } fn main() { let _args = App::parse(); }
$ ./target/debug/kakeibo -h
Usage: kakeibo
Commands:
new 新しい口座を作る
deposit 口座に入金する
withdraw 口座から出金する
import CSVからインポートする
report レポートを出力する
help Print this message or the help of the given subcommand(s)
Options:
-h, –help Print help
-V, –version Print version