Bash 如何使用:';dpkg-s pv | grep状态';
编码virgin需要帮助-一旦安装了package pv,该代码总是执行Bash 如何使用:';dpkg-s pv | grep状态';,bash,grep,dpkg,Bash,Grep,Dpkg,编码virgin需要帮助-一旦安装了package pv,该代码总是执行其他而不是然后。为什么? # 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
其他
而不是然后
。为什么?
# 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的raspberry piRaspbian/2013-02-09
,pv版本为1.2.0
,作者不可用
谢谢。不要捕获
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
grep
的-q
选项用于抑制任何匹配行的输出,因为您不需要查看它们。由于双“then”,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
什么是
dpkg-s pv | grep Status
print?Package:pv Status:install ok installed blah&so onOK so如果[[$PACKAGESTATUS==s*]]
将为真,只要$PACKAGESTATUS
以s
开头,请看是,我怀疑它也不起作用。Thx的链接-解决方案运作良好