如何验证 运行 bash 脚本时是否缺少必需的命令?
How do I verify if required command is missing when running bash script?
我有以下代码来检查缺少的命令:
All commands
ALLCMD=(
route
ip
netstat
tar
)
for cmd in ${ALLCMD[*]}
do
if ! command -v $cmd &> /dev/null
then
echo "Installed"
echo "$cmd"
else
echo "Missing"
echo "$cmd"
fi
done
我只需要显示缺少的命令,因为建议问题已通过删除已安装的部分得到解决
你在循环中有一个 if
语句,正例(条件满足)和负例(条件不满足)都打印了一些东西。如果您不想要这些,只需删除它们。也就是说,如果您只是从 if
中删除 echo
命令,bash 会抱怨:
syntax error near unexpected token `else'
您可以毫无问题地删除 else
分支。所以你必须翻转你 if
的条件。在您的情况下,它已经使用 !
否定了条件,因此您可以删除它:
if command -v "$cmd" &> /dev/null
then
echo "Missing"
echo "$cmd"
fi
我有以下代码来检查缺少的命令:
All commands
ALLCMD=(
route
ip
netstat
tar
)
for cmd in ${ALLCMD[*]}
do
if ! command -v $cmd &> /dev/null
then
echo "Installed"
echo "$cmd"
else
echo "Missing"
echo "$cmd"
fi
done
我只需要显示缺少的命令,因为建议问题已通过删除已安装的部分得到解决
你在循环中有一个 if
语句,正例(条件满足)和负例(条件不满足)都打印了一些东西。如果您不想要这些,只需删除它们。也就是说,如果您只是从 if
中删除 echo
命令,bash 会抱怨:
syntax error near unexpected token `else'
您可以毫无问题地删除 else
分支。所以你必须翻转你 if
的条件。在您的情况下,它已经使用 !
否定了条件,因此您可以删除它:
if command -v "$cmd" &> /dev/null
then
echo "Missing"
echo "$cmd"
fi