编码处女需要帮助 - 一旦安装了包pv,这段代码总是else
而不是then
。为什么呢?
# First check if pv package is installed, if not, install it first
PACKAGESTATUS=`dpkg -s pv | grep Status`;
if [[ $PACKAGESTATUS == S* ]]
then
echo "Package 'pv' is installed."
else
echo "Package 'pv' is NOT installed."
echo "Installing package 'pv'. Please wait..."
apt-get -y install pv
fi
它是备份脚本的一部分,它备份运行Raspbian wheezy raspbian/2013-02-09
并且pv是版本1.2.0
且作者不可用的覆盆子pi。
感谢。
答案 0 :(得分:1)
不要捕获dpkg | grep
管道的输出,只需检查其退出状态:
if dpkg -s pv | grep -q Status; then
then
echo "Package 'pv' is installed."
else
echo "Package 'pv' is NOT installed."
echo "Installing package 'pv'. Please wait..."
apt-get -y install pv
fi
-q
的{{1}}选项用于抑制任何匹配行的输出,因为您不需要看到它们。
答案 1 :(得分:1)
由于双重'然后',因此在chepners回答中存在轻微的语法错误。
我对这个版本好运
if `dpkg -s pv | grep -q Status;`
then
echo "Package 'pv' is installed."
else
echo "Package 'pv' is NOT installed."
echo "Installing package 'pv'. Please wait..."
apt-get -y install pv
fi