Skip to contentSkip to conversation

Is there a better way

DISCUSSION MARG 3 participants 5 messages Dec 12, 2005

lore
Share & tools
lore

MARG

author
#0 lore raw

Hi,

I'm doing this script (after my signature) that starts by downloading files from the web.
It checks for each file if the download was successful.

Is theres a fancier way to do the test, instead of repeating
-----------------------------------
code=$?
if [ $code != 0 ]
then
echo "Couldn't retrieve file :("
exit 1
fi
-----------------------------------

for each file ?

Any help would be apreciated.

Warm Regards,
MARG

#!/bin/bash

cd /usr/local/src
wget
http://www.mirror.ac.uk/mirror/ftp.apache.org/httpd/apache_1.3.34.tar.gz
code=$?
echo $code
if [ $code != 0 ]
then
echo "Couldn't retrieve file :("
exit 1
fi
wget
http://www.mirror.ac.uk/mirror/www.mysql.org/Downloads/MySQL-5.0/mysql-5.0.16.tar.gz
code=$?
echo $code
if [ $code != 0 ]
then
echo "Couldn't retrieve file :("
exit 1
fi
wget
http://www.mirror.ac.uk/mirror/ftp.postgresql.org/v8.1.1/postgresql-8.1.1.tar.bz2
code=$?
echo $code
if [ $code != 0 ]
then
echo "Couldn't retrieve file :("
exit 1
fi
wget
http://www.mirror.ac.uk/mirror/ftp.openssl.org/source/openssl-0.9.8a.tar.gz
code=$?
echo $code
if [ $code != 0 ]
then
echo "Couldn't retrieve file :("
exit 1
fi
wget
http://www.mirror.ac.uk/mirror/ftp.modssl.org/source/mod_ssl-2.8.25-1.3.34.tar.gz
code=$?
echo $code
if [ $code != 0 ]
then
echo "Couldn't retrieve file :("
exit 1
fi
wget http://www.mirror.ac.uk/mirror/ftp.apache.org/perl/mod_perl-1.29.tar.gz
code=$?
echo $code
if [ $code != 0 ]
then
echo "Couldn't retrieve file :("
exit 1
fi
wget http://www.modsecurity.org/download/modsecurity-apache-1.9.1.tar.gz
code=$?
echo $code
if [ $code != 0 ]
then
echo "Couldn't retrieve file :("
exit 1
fi
wget
http://puzzle.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.7.tar.gz
code=$?
echo $code
if [ $code != 0 ]
then
echo "Couldn't retrieve file :("
exit 1
fi
wget http://puzzle.dl.sourceforge.net/sourceforge/mhash/mhash-0.9.3.tar.gz
code=$?
echo $code
if [ $code != 0 ]
then
echo "Couldn't retrieve file :("
exit 1
fi
wget http://puzzle.dl.sourceforge.net/sourceforge/mcrypt/mcrypt-2.6.4.tar.gz
code=$?
echo $code
if [ $code != 0 ]
then
echo "Couldn't retrieve file :("
exit 1
fi
wget
http://www.mirror.ac.uk/mirror/rsync.php.net/distributions/php-5.1.1.tar.bz2
code=$?
echo $code
if [ $code != 0 ]
then
echo "Couldn't retrieve file :("
exit 1
fi
wget http://neacm.fe.up.pt/pub/apache/httpd/modpython/mod_python-2.7.11.tgz

#1 lore raw
Quoted 16 lines · MARG

Hi,

I'm doing this script (after my signature) that starts by downloading files from the web.
It checks for each file if the download was successful.

Is theres a fancier way to do the test, instead of repeating
-----------------------------------
code=$?
if [ $code != 0 ]
then
echo "Couldn't retrieve file :("
exit 1
fi
-----------------------------------

Quoted 1 line

for each file ?

How about putting your links in a nice file

for link in cat mylinksfile; do

wget $link
blah blah blah
done

using && in place of ; might help too, as the next command (after &&) only gets ran if the first was error free.

also if [!$?] should work in this case as well (test it though)

Quoted 1 line

Any help would be apreciated.

You need a book on UNIX Shell scripting. There are loads of free stuff out there. :)

--
Scott

#2 lore raw
In reply to MARG

Or so, if you dont trust the "&&"

#!/bin/bash
for pkgurl in $(cat pkg-url-list.txt); do
wget $pkgurl ;
code=$?
echo $code
if [ $code != 0 ]
then
echo "Couldn't retrieve file :("
###break loop instead of exit 1
break
fi

done

--Adrian

Quoted 8 lines
Quoted 7 lines · MARG

Hi,

I'm doing this script (after my signature) that starts by downloading files from the web.
It checks for each file if the download was successful.

Is theres a fancier way to do the test, instead of repeating

#3 lore raw
Quoted 15 lines · Adrian C.

Or so, if you dont trust the "&&"

#!/bin/bash
for pkgurl in $(cat pkg-url-list.txt); do
wget $pkgurl ;
code=$?
echo $code
if [ $code != 0 ]
then
echo "Couldn't retrieve file :("
###break loop instead of exit 1
break
fi

Quoted 1 line

done

Also, may want to add the variable to your error message so you know which file it couldn't get:
echo "Couldn't retrieve file: $pkgurl :("

--
Scott

#4 lore raw

That's a tad redundant because wget already yells it cannot find URL x.

--Adrian

Quoted 11 lines

Also, may want to add the variable to your error message so you know which file it couldn't get:
echo "Couldn't retrieve file: $pkgurl :("

--
Scott

-
To unsubscribe from this list: send the line "unsubscribe linux-admin" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html