Кавычки в аргументах для Литтлера / Докопта

Я хочу передать строки, как 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 отбрасывает аргументы настолько тщательно, что вы не можете (легко) защитить пробелы, иначе используемые как разграничение.

Другие вопросы по тегам