我正在尝试在我的CentOS 6.5机器上安装freeSwitch。我按照https://confluence.freeswitch.org/display/FREESWITCH/CentOS+6给出的说明进行了操作。
执行make命令时,我在终端从 files.freeswitch.org 下载库时遇到超时问题。
如果我在浏览器中粘贴网址,我可以下载该文件。下载指令写在脚本文件中。
现在我想更改脚本,以便不是从url执行wget,而是应该从本地磁盘读取它。因为我是shell脚本的新手。我应该如何更改脚本以获得所需的结果。脚本的文件名是getlib.sh,脚本是
请帮忙
#!/bin/sh
##### -*- mode:shell-script; indent-tabs-mode:nil; sh-basic-offset:2 -*-
TAR=/bin/gtar
ZCAT=/bin/gunzip
BZIP=/usr/bin/bzip2
XZ=/usr/bin/xz
WGET=/usr/bin/wget
CURL=/usr/bin/curl
if [ -f "$WGET" ]; then
DOWNLOAD_CMD=$WGET
elif [ -f "$CURL" ]; then
DOWNLOAD_CMD="$CURL -O"
fi
if [ -n "`echo $1 | grep '://'`" ]; then
base=$1/
tarfile=$2
else
base=http://files.freeswitch.org/downloads/libs/
tarfile=$1
fi
uncompressed=`echo $tarfile | sed 's/\(\(\.tar\.gz\|\.tar\.bz2\|\.tar\.xz\)\|\(\.tgz\|\.tbz2\)\)$//'`
case `echo $tarfile | sed 's/^.*\.//'` in
bz2|tbz2) UNZIPPER=$BZIP ;;
xz) UNZIPPER=$XZ ;;
gz|tgz|*) UNZIPPER=$ZCAT ;;
esac
if [ ! -d $tarfile ]; then
if [ ! -f $tarfile ]; then
rm -fr $uncompressed
$DOWNLOAD_CMD $base$tarfile
if [ ! -f $tarfile ]; then
echo cannot find $tarfile
exit 1
fi
fi
if [ ! -d $uncompressed ]; then
$UNZIPPER -c -d $tarfile | $TAR -xf -
fi
fi
exit 0
答案 0 :(得分:2)
if [ -n "`echo $1 | grep '://'`" ]; then
base=$1/
tarfile=$2
您的脚本已设置为使用下载的文件。只需运行您的脚本,将PATH作为$ 1,下载的文件名为$ 2。例如,如果脚本名称为freeSwitch
,并且您下载tarball的路径为/home/user1/files/
且tarball名称为freeswitch.tar.bz2
,则只需运行:
./freeSwitch /home/user1/files/ freeswitch.tar.bz2
这应该使用本地磁盘中的tarball启动脚本,而不是尝试从http://files.freeswitch.org/downloads/libs/下载它。 注意您需要在PATH结尾处跟踪/
。祝你好运!