【问题标题】:Using external variable in exec_command python在 exec_command python 中使用外部变量
【发布时间】:2015-02-21 07:22:02
【问题描述】:

我正在 Python 中执行 exec_command。命令是:find -path。 -mmin -$time -打印。我分配时间= 100。但是在执行命令时, exec_command 不会获取变量值。 甚至我会执行 exec_command('echo $time')。它没有获取价值。

【问题讨论】:

    标签: python paramiko execcommand


    【解决方案1】:

    Python 和 shell 有不同的变量。在 Python 脚本中设置 time 不会神奇地创建一个名为 $time 的变量,然后您可以在 shell 命令中使用该变量。它尤其不会在其他计算机上神奇地创建一个 shell 变量,而这似乎是你正在尝试做的。

    相反,将 Python 值放入您传递的字符串中。例如:

    command = 'find -path . -mmin -%d -print' % time
    print(command)   # shows the exact command that will be executed
    exec_command(command)
    

    对此要小心。如果您不知道自己在做什么,则很容易造成安全漏洞,尤其是当您从用户输入或其他您无法控制的数据源中获取字符串时。在此示例中,我使用%d 将值替换为命令,这样可以防止使用除数字之外的任何内容,这应该是安全的。

    【讨论】:

    • 谢谢!这有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    • 2014-03-01
    相关资源
    最近更新 更多