我有一个python脚本,该脚本在运行时会在终端上记录信息,我想将此记录信息发送到文本文件,
为了实现这一点,我正在插入文件
import subprocess
subprocess.call(['script', 'logfile'])
在文件末尾,我放入
subprocess.call(['exit'])
问题是当它调用第一个命令时script logfile
,它将终止脚本,
提前感谢我如何做这项工作的任何建议
问题在于,subprocess.call
直到script
退出产生的外壳程序才返回,这时您的Python脚本将恢复。
执行所需操作的最简单方法是script
使用Python脚本作为参数来调用自身。代替
#!/usr/bin/python
import subprocess
subprocess.call(['script', 'logfile'])
# Rest of your Python code
subprocess.call(['exit'])
您将使用
#!/usr/bin/python
import os
import sys
if '_underscript' not in os.environ:
os.environ['_underscript'] = "yes"
cmd_args = ['script', 'logfile', 'python'] + sys.argv
os.execvp('script', cmd_args)
# Rest of your Python code
环境变量可防止您的脚本进入无限循环以重新运行自身script
。当您运行Python脚本时,它首先会在其环境中检查尚不存在的变量。如果没有,它将设置该变量,然后运行script
以重新运行Python脚本。execvp
用对的调用替换您的脚本script
;
Python脚本中没有其他内容可以执行。第二次脚本运行时,变量_underscript
确实
存在,这意味着将if
跳过该块,并且脚本的其余部分将按预期运行。
问题内容: 我正在尝试使用命令记录bash会话。 该命令是从bash脚本开始执行的,但是一旦执行,bash脚本就会终止。 我尝试使用各种组合来始终以相同的结果调用命令(调用该命令后立即终止bash脚本)。我得到的输出如下: 我也尝试过最后用a来调用命令,但是再次失败了。 谁能告诉我如何从bash脚本调用命令? 谢谢 问题答案: 您的Shell脚本没有终止。它仍在运行。您会收到提示,因为正在生成新的
问题内容: 我正在尝试使用bash脚本将JSON文件上传到我的noSQL数据库中,但是它不起作用,我也不明白为什么。 这是脚本: 这是错误: 当我执行命令行中给出的命令时,它仍然可以正常工作。 这是什么错误?谢谢 问题答案: 不要将命令存储在变量中;如果您绝对必须具有可用于日志记录的内容,请将 参数 放入数组中。
问题内容: 我运行一个包含此行的python脚本 然后,我在服务器上运行相同的代码,并收到以下错误消息 因此,我要做的就是print bashCommand在运行之前,在终端中插入一个比命令更清晰的信息os.system()。 当然,我再次收到错误(由引起os.system(bashCommand)),但是在该错误出现之前,它会在终端中打印命令。然后我只是复制了输出,然后将复制粘贴到终端中,然后按
问题内容: 对于那些想回复我应该使用SSH密钥的人,请弃权 我试图在bash脚本中使用Expect提供SSH密码。提供密码是可行的,但是我并没有像我应该的那样最终进入SSH会话,它将回溯到bash。 我的剧本: 我的脚本的输出: 我想拥有我的SSH会话,并且只有在退出该会话后才能返回我的bash脚本。我之所以使用bash,是因为我使用了可以选择要连接到的设备的菜单。 谢谢 问题答案: 混合bash
我是bash的新手。当我尝试使用命令进行比较时,我遇到了如下问题: 在我的教程中,应该等于
问题内容: 有没有办法从Python运行BASH内置命令? 我试过了: 及其许多变化。我想跑步还是。 问题答案: 我终于找到了可行的解决方案。 谢谢大家的投入。