【发布时间】:2015-02-21 07:22:02
【问题描述】:
我正在 Python 中执行 exec_command。命令是:find -path。 -mmin -$time -打印。我分配时间= 100。但是在执行命令时, exec_command 不会获取变量值。 甚至我会执行 exec_command('echo $time')。它没有获取价值。
【问题讨论】:
标签: python paramiko execcommand
我正在 Python 中执行 exec_command。命令是:find -path。 -mmin -$time -打印。我分配时间= 100。但是在执行命令时, exec_command 不会获取变量值。 甚至我会执行 exec_command('echo $time')。它没有获取价值。
【问题讨论】:
标签: python paramiko execcommand
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 将值替换为命令,这样可以防止使用除数字之外的任何内容,这应该是安全的。
【讨论】: