簡體   English   中英

正確處理bash命令轉義字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM