[英]Properly dealing with bash commands escape characters
在 Linux Bash 腳本中
/bin/sh
等價於/bin//sh
e\\tc
轉換為etc
\\'
轉換為'
"b"
轉換為b
'in'
轉換為in
將任何字符串轉換為其“bash 等效項”的確切方法是什么? (理想情況下在python中)
例如,將/"b"'i'n///\\s"h"
轉換為/bin/sh
,如下所示:
r3t@r3t:~/$ /"b"'i'n///\s"h"
$
一種選擇是使用標准庫中的shlex
模塊。
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.