我用谷歌搜索并找到了这个帖子:链接到帖子。 从那里我找到了一个控制是否安装了以下程序/工具的命令。所以我决定投入使用。
#!/bin/bash
set -x
programs=$(bc nmap coreutils xmlstarlet)
if [ $(dpkg-query -W -f='${Status}' "$programs" 2>/dev/null | grep -c "ok installed") -eq 0 ];
then
apt-get update | apt-get install "$programs" -y;
fi
我这样做正确吗?或者这有什么问题吗?
我只需要一种方法,program/tool name
然后programs variable
它会在我的机器上运行它。
您可以简单地使用来检查它是否
command -v
已安装,如果尚未安装,则 if 条件上的返回码将帮助您安装该选项
command -v
符合 POSIX。您可以apt-get update
只运行一次,而不是循环的每次迭代。您还定义programs
了一个变量,它应该是一个迭代数组。如果您只想在缺少某些命令的情况下退出脚本:
但是,如果您还想安装缺少的命令:
例子:
笔记: