我在Python中执行exec_command。命令是:find -path。 -mmin - $ time -print。我指的是时间= 100。但是在执行命令时,exec_command不会获取变量值。 甚至我做了exec_command('echo $ time')。它没有获得价值。
答案 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
将值替换为命令,这将保留除数字之外的任何内容,这应该是安全的。