在exec_command python中使用外部变量

时间:2015-02-21 07:22:03

标签: python paramiko execcommand

我在Python中执行exec_command。命令是:find -path。 -mmin - $ time -print。我指的是时间= 100。但是在执行命令时,exec_command不会获取变量值。 甚至我做了exec_command('echo $ time')。它没有获得价值。

1 个答案:

答案 0 :(得分: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将值替换为命令,这将保留除数字之外的任何内容,这应该是安全的。