Я использую хлопок, и я получаю неожиданное поведение при попытке разобрать аргументы.
Мой инструмент командной строки должен работать следующим образом
foo -u <user> <command>
например:.
foo -u jack echo s
foo -u paul ls -al
Мне нужно получить такие параметры, как пользователь, но сам <command>
мне нужны остальные аргументы.
Приведенный ниже код приводит к поведению, при котором я не могу получить значение <command>
, если оно не заключено в кавычки:
foo -u jack echo s
error: Found argument 's' which wasn't expected, or isn't valid in this context
В то время как это прекрасно работает:
foo -u jack 'echo s'
Есть ли способ избежать кавычек?
let matches = App::new("foo")
.version("0.1")
.arg(
Arg::with_name("user")
.short("u")
.long("user")
.required(true)
.takes_value(true),
)
.arg(
Arg::with_name("command")
.help("The command to run")
.required(true)
.takes_value(true),
)
.get_matches();
Я также открыл проблему в хранилище хлопков .