【发布时间】:2019-07-24 14:46:29
【问题描述】:
我正在制作一个 python 脚本,它会自动检查计算机上是否安装了 nmap,然后继续运行 nmap。我遇到的一个问题是,当它运行时它会返回/bin/sh: 1: [: missing ],我还想知道如何将终端的输出通过管道传输回我的程序。假设我运行hostname -I 如何复制输出并在我的脚本中为其分配一个变量名。感谢代码在下面
import os
import subprocess
def isInstalled(name):
cmd = """ if ! [ -x "$#(command -v """ + name + """)" ]; then
echo '0'
exit 0
fi"""
ret = subprocess.check_output(cmd, shell=True).strip()
if ret == b'0':
return False
return True
if isInstalled('nmap'):
print("Nmap is installed")
else:
print("nmap is uninstalled since quite mode is active auto install will")
【问题讨论】:
-
这不是linux问题,而是shell问题:请调整标签。
-
你的代码真的不应该给出这个错误。但是,只要稍加修改,它就会:如果你写
[ -x "$#(command -v """ + name + """)"]; then()"和]之间没有空格)那么它会给出这个错误。您能否将此问题中的代码复制粘贴到一个新文件中并仔细检查?