gpt4 book ai didi

linux - 本地文件的 Shell 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 09:37:54 25 4
gpt4 key购买 nike

我正在尝试在我的 CentOS 6.5 机器上安装 freeSwitch。我已按照 https://confluence.freeswitch.org/display/FREESWITCH/CentOS+6 给出的说明进行操作.

在执行 make 命令时,我在终端从 files.freeswitch.org 下载库时遇到超时问题。

如果我将 url 粘贴到浏览器中,我就可以下载该文件。下载指令写在脚本文件中。

现在我想更改脚本,而不是从 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

最佳答案

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 末尾添加 /。祝你好运!

关于linux - 本地文件的 Shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24549948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com