Кавычки в аргументах для Литтлера / Докопта
Я хочу передать строки, как key="value"
к меньшему сценарию. В Bash у меня есть argtest.sh
:
#!/bin/sh
echo $1
который я могу вызвать, сохраняя кавычки из оболочки с помощью обратной косой черты, и я вижу их в выводе:
$ ./argtest.sh x=\"1\"
x="1"
Однако я не могу получить такие аргументы через littler / docopt. Вот мой тестовый скрипт:
#!/usr/bin/env r
doc <- "Usage: thing -t thing
-t --thing thing some args
"
opt <- docopt::docopt(doc)
print(opt$thing)
target = 'x="1"'
if(opt$thing==target){
message("Winner")
}else{
message("Loser")
}
Простое обратное цитирование, как в примере с оболочкой, не работает:
$ ./argtest.r -t x=\"1\"
[1] "x=1"
Loser
И все остальное, что я пробовал, тоже не получается. Подобно:
$ ./argtest.r -t 'x=\"1\"'
[1] "x=\\1\\"
Loser
Кто-нибудь может быть победителем здесь?
1 ответ
Я думаю, что это хочет быть проблемой билет в репо docopt.
Насколько я помню, у Дженни тоже когда-то был угловой шкаф. Метинкс, который docopt отбрасывает аргументы настолько тщательно, что вы не можете (легко) защитить пробелы, иначе используемые как разграничение.