我有一个使用以下代码在 Python 中编码的 bash 脚本:
import tempfile
import subprocess
import zlib
with open("/root/test.sh") as inputfile:
teststr = zlib.compress(inputfile.read()).encode('base64')
print teststr
这给了我编码的字符串,然后我将其作为我的 python 脚本中的变量传递,就像这样(请注意,这是一个安装的示例脚本pip
):
piping="eJyNksFuwyAMhs/wFJ4qTdsBrG63HXLdY0yEEoKSAAJnXTvt3QdtNyWTWu2EkX//tj/Y3GHrPLYq95xz5zOpcXyLLj48fnLG2TTsXAKcc8IxaDViThq7kIqi6JneXcuxDbwaIuctZENzFBTCmIECXJpAPFAfvKhqtreGoCeK+QUxHqKT56wMyWJUelDWZMxhTtpgCarjyXARiq3cymdJKkl7BCF8ELo3ehDaJHKd04oMNM1y4K6borHlUpq4KMsJT839lrNiAseP9w6u2a991sUFyt8yzs77nBNluV8Kt4yWEJXf/dScmJ5QQKG94Ag3HmSNOKm9tI76uZU6TJW4qr1xUplMQh08JddiKam+dd5bc152+5+afy2/Gf8G8sjZTA=="
installpip=zlib.decompress(piping.decode('base64'))
with tempfile.NamedTemporaryFile() as scriptfile:
scriptfile.write(installpip)
scriptfile.flush()
subprocess.call(['/bin/bash', scriptfile.name])
然后使用pytinstaller 2.0
. 运行安装时,它运行良好,但编码的变量被解码并临时存储在/tmp
as 中tmpXXXXX
,这显示为在运行时运行ps aux
and top
。
如何避免这种情况?