我想将字符串传递key="value"
给更小的脚本。在 bash 中,我有argtest.sh
:
#!/bin/sh
echo $1
我可以调用它,通过反斜杠保留 shell 中的引号,并在输出中看到它们:
$ ./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")
}
shell 示例中的简单反引号不起作用:
$ ./argtest.r -t x=\"1\"
[1] "x=1"
Loser
我尝试过的所有其他事情也都失败了。喜欢:
$ ./argtest.r -t 'x=\"1\"'
[1] "x=\\1\\"
Loser
谁能成为这里的赢家?