【问题标题】:Set the variable in command output在命令输出中设置变量
【发布时间】:2016-04-11 14:25:42
【问题描述】:

我想知道如何在另一个命令的输出中使用我的变量。例如,如果我尝试使用“openssl”生成一些密钥,我会得到关于国家、州、组织等的问题。

我想在我必须填写此信息的脚本中使用我的变量。我将有变量“国家”;变量“State”等,并在执行时从openssl命令解析/设置到这个问题中。

我正在 bash 中尝试此操作,但也想知道如何在 python 中完成相同的想法。

亲切的问候

【问题讨论】:

    标签: python bash variables output


    【解决方案1】:

    您有多种方法可以做到这一点。 1. 如果你的脚本在 python 脚本之前启动并且结果集在环境变量中,你可以从你的 python 脚本中读取环境变量,如下所示:

    import os 
    os.environ.get('MYVARIABLE', 'Default val')
    

    否则,您可以尝试从您的 python 脚本启动其他应用程序并使用 os.popen() 读取结果:

    import os
    tmp = os.popen("ls").read()
    

    或更好(如果你有比 2.6 更新的 python)

    import subprocess
    proc = subprocess.Popen('ls', stdout=subprocess.PIPE)
    tmp = proc.stdout.read()
    

    【讨论】:

    • 那么 Bash 呢?另外另一个命令是openssl,我想要实现的是使用正在午餐openssl的脚本中的变量来填写openssl问我的那些问题
    • 好的...所以你想要打开一个交互式shell。看看这个:pymotw.com/2/subprocess
    • 我为 openssl 找到了一些解决方案。有一个 man openssl 可以填写所需的问题。但主要问题是如何与一些 shell 交互,这些 shell 显示需要用用户的一些输入来填充的问题。我想用脚本中的一些变量自动填充这些问题。以 ssh-keygen 命令为例,当您被提示问题时,用户需要填写此问题。存储密钥、密码名称等的路径。
    猜你喜欢
    • 2022-01-24
    • 2014-05-26
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-16
    相关资源
    最近更新 更多