1
geelaw 2019-10-25 15:10:51 +08:00 via iPhone
改变你调用的写法
|
2
wallenorepeat OP |
3
CallMeReznov 2019-10-25 15:14:47 +08:00
''"'device=1,2'"''
|
4
wallenorepeat OP @CallMeReznov 我刚试了一下,这样的话,里面的双引号就消失了,结果是:`['./docker', "'device=1,2'"]`
|
6
CallMeReznov 2019-10-25 15:26:35 +08:00
a=sys.argv
python("'%s'" %a) 想加多少就加多少 |
7
Ginson 2019-10-25 15:27:57 +08:00
没看清,原来你是想要单双引号都保留啊,就是参数所见是什么保留什么咯
|
8
wallenorepeat OP @Ginson 是的,就是这个意思,我没有表述清楚
|
9
geelaw 2019-10-25 16:16:39 +08:00
@wallenorepeat #2 这是不可能的,因为 bash 启动 Python 的时候那部分信息就已经没有了。
|
10
ClericPy 2019-10-25 16:22:20 +08:00
@wallenorepeat 必须这样写, 不然 bash 就报错了, 只能靠 backslash 来转义, 如果你想找类似 `` 这种原始字符串符号的话, 据我所知没有
点进来之前我以为你也遇到 shlex.split 时候遇到 curl 里 data-binary 参数带 \' 的那个坑了呢...直接报错 unclosed quote, 坑我一夜 |
11
xiaket 2019-10-25 16:31:08 +08:00
这是一个 bash 的问题, 不是一个 python 的问题
|
12
wallenorepeat OP |
13
wallenorepeat OP @xiaket 是的,后来才意识到
|
14
ClericPy 2019-10-25 16:50:58 +08:00
@wallenorepeat 其实说白了, python xxx.py a b c 这种命令是在 shell 上执行的, 当然得按照对方要求了, 不然你非要单引号, 那就在程序里用 input, 不过看你是不想和程序交互, 这招不好使. 稍微了解一下 shell 吧, 单引号和双引号还有不同, 很多好用但是反直觉的操作
|