我制作了一个下载LibreOffice的脚本 并在Slackware Linux上升级它。 我想做一个简单的纠正;如果包文件无法下载, 我希望脚本返回"脚本在..."
失败例如, 如果libreoffice-mozplug..etc失败脚本返回 "在upgradepkg失败 - 安装新的libreoffice-mozplug..etc" 怎么做?
这是剧本(我知道......这不是最好的,但我正在研究它)
#!/bin/sh
set -e
VERSION=4.3.1
LACKVERSION=14.1
alias wget="wget -nc"
#get!
wget http://www.slackware.com/~alien/slackbuilds/libreoffice/pkg64/$LACKVERSION/libreoffice-$VERSION-x86_64-1alien.txz.asc
wget http://www.slackware.com/~alien/slackbuilds/libreoffice/pkg64/$LACKVERSION/libreoffice-$VERSION-x86_64-1alien.txz
wget http://www.slackware.com/~alien/slackbuilds/libreoffice/pkg64/$LACKVERSION/libreoffice-dict-it-$VERSION-x86_64-1alien.txz.asc
wget http://www.slackware.com/~alien/slackbuilds/libreoffice/pkg64/$LACKVERSION/libreoffice-dict-it-$VERSION-x86_64-1alien.txz
wget http://www.slackware.com/~alien/slackbuilds/libreoffice/pkg64/$LACKVERSION/libreoffice-l10n-it-$VERSION-x86_64-1alien.txz.asc
wget http://www.slackware.com/~alien/slackbuilds/libreoffice/pkg64/$LACKVERSION/libreoffice-l10n-it-$VERSION-x86_64-1alien.txz
wget http://www.slackware.com/~alien/slackbuilds/libreoffice/pkg64/$LACKVERSION/libreoffice-mozplugin-$VERSION-x86_64-1alien.txz
wget http://www.slackware.com/~alien/slackbuilds/libreoffice/pkg64/$LACKVERSION/libreoffice-mozplugin-4.3.1-x86_64-1alien.txz.asc
#funzione gpg
funzion1()
{
arg1=$1
arg2=$2
gpg -v $1
}
#check gpg signature
for i in *.asc;do `funzion1 $i`;done
if [ $? -eq 0 ]
then
echo "All is well"
else
echo "Problem with signature."
fi
#funzione upgrade
funzion2()
{
arg1=$1
arg2=$2
upgradepkg --install-new $1
}
#check upgrade
for i in *.txz;do `funzion2 $i`;done
if [ $? -eq 0 ]
then
echo "All is well"
else
echo "Problem with upgrade."
fi
答案 0 :(得分:1)
下载文件后,您只需要以下内容(您的功能并不足以为定义它而烦恼):
for i in *.asc; do
if gpg -v "$i"; then
echo "$i is OK"
else
echo "Problem with $i's signature"
fi
done
您想要检查每次gpg
来电的返回状态,而不仅仅是最后一次。
答案 1 :(得分:1)
更改:
for i in *.txz;do `funzion2 $i`;done
到
for i in *.txz;do `funzion2 $i || echo "Error with: $i"`;done
Ps:未经测试。
答案 2 :(得分:1)
我无法帮助,但觉得wget
的8次调用是非常重复的。
为什么不:
URL_BASE=http://www.slackware.com/~alien/slackbuilds/libreoffice/pkg64/$LACKVERSION
PKG_SUFFIX=$VERSION-x86_64-1alien.txz
for pkg in libreoffice libreoffice-dict-it libreoffice-l10n-it libreoffice-mozplugin
do
main="$URL_BASE/$pkg-$PKG_SUFFIX"
wget "$main" || exit 1
wget "$main.asc" || exit 1
done