Python 正确处理bash命令转义字符
在Linux Bash脚本中Python 正确处理bash命令转义字符,python,linux,string,shell,scripting,Python,Linux,String,Shell,Scripting,在Linux Bash脚本中 /bin/sh相当于/bin//sh e\tc转换为etc \'转换为' “b”转换为b 'in'转换为in 将任何字符串转换为其“bash等价物”的确切方法是什么?(理想情况下使用python) 例如,以转换为/bin/sh的/“b”i'n//\s“h”为例,如下所示: r3t@r3t:~/$ /"b"'i'n///\s"h" $ 一个选项是使用标准库中的模块 import shlex text = "&q
相当于/bin/sh
/bin//sh
转换为e\tc
etc
转换为\'
'
转换为“b”
b
转换为'in'
in
/bin/sh
的/“b”i'n//\s“h”为例,如下所示:
r3t@r3t:~/$ /"b"'i'n///\s"h"
$
一个选项是使用标准库中的模块
import shlex
text = """\
/"b"'i'n///\s"h"
"""
s = shlex.shlex(text, posix=True)
list(s)
# ['/', 'bin', '/', '/', '/', 'sh']
s = shlex.shlex(text, posix=True)
"".join(s)
# '/bin///sh'
上面的内容与使用此输入的bash所看到的内容相同:
$ echo /"b"'i'n///\s"h"
/bin///sh
/
仅在路径中等同于/
,在其他上下文中则不然。或者shlex.split(text)