可以用python生成可执行shell脚本吗?

2024-04-20 14:41:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试创建一个脚本,使用用户确定的密码安装和配置多个程序,如phpmyadmin。为了确保用户的密码是安全的,我打算使用用户输入的密码生成下面的shell脚本,将其传递给脚本进行输出,并在脚本运行完成后销毁脚本,以确保密码的完整性。问题是,我不知道如何在python代码中创建shell脚本。你知道吗

脚本:

echo phpmyadmin phpmyadmin/dbconfig-install boolean true | debconf-set-selections
echo phpmyadmin phpmyadmin/app-password-confirm password pwd | debconf-set-selections
echo phpmyadmin phpmyadmin/mysql/admin-pass password pwd| debconf-set-selections
echo phpmyadmin phpmyadmin/mysql/app-pass password pwd| debconf-set-selections
echo phpmyadmin phpmyadmin/reconfigure-webserver multiselect apache2 | debconf-set-selections
echo phpmyadmin phpmyadmin/upgrade-backup boolean true | debconf-set-selections

Tags: 用户echo脚本trueapp密码pwdmysql
2条回答

可以将可执行文件生成为任何其他文本文件。你知道吗

要使其真正可执行,必须对其设置可执行权限,或者使用类似的解释器调用它

$ source yourscriptfile

顺便说一句-将密码写入文件不是很安全,想象一下,你的清理代码会崩溃而不会删除文件。你知道吗

通常可以通过将密码设置为系统变量并在脚本中引用该变量来解决此问题。你知道吗

Python允许执行脚本(参见subprocess)和操作环境变量。你知道吗

一般的方法是在文件的开头添加#!shebanghashbang)指令,以便shell知道在哪里可以找到文件的运行时需求。例如,python脚本需要知道在环境中的何处可以找到python,因此可以添加:

#!/usr/bin/env python

作为python脚本的第一行。然后确保添加脚本或将其安装在系统中的某个地方$PATH,或者只需对脚本进行相对/绝对引用。通常还需要确保脚本具有可执行权限,以便可以在没有权限错误的情况下运行它。你知道吗

有关为什么使用/usr/bin/env python而不是直接指向python运行时的路径的更多信息,请参见thisanswer。你知道吗

相关问题 更多 >