蒸汽脚本功能的解释

时间:2013-05-09 03:08:25

标签: function steam

我已经下载了一个脚本文件,它下载了蒸汽引擎,依赖项,然后安装它们。我试图了解代码究竟在做什么。我理解了它的一部分,但无法理解某些功能。谁能解释一下这些功能在做什么?

download() {
    local url="$1"
    local filename="$(basename "$url")"

    if [ ! -f "$filename" ]; then
        wget -c "$url" -O "$filename.part"
        mv "$filename.part" "$filename"
    fi
}

package() {
    local url="$1"
    local target="$2"

    download "$url"

    mkdir -p "$target"
    ar p "$(basename "$url")" data.tar.gz | tar xz -C "$target"
}

STEAM_DEB_URL="http://media.steampowered.com/client/installer/steam.deb"
UBUNTU_DEB_URL="http://security.ubuntu.com/ubuntu/pool/main/e/eglibc/libc6_2.15-0ubuntu10.2_i386.deb"

1 个答案:

答案 0 :(得分:0)

下载函数将URL作为其参数,并将其存储为名为url的变量。 $(basename" $ url")执行命令basename,其中url变量作为参数,值返回并存储到filename中。本质上,它试图确定网址的文件名部分。因此,如果您的网址是www.example.com/foo.txt,则filename只会等于foo.txt if块会尝试查看该文件是否已存在于您当前的工作目录中。如果没有,那么它使用curl下载它。

package函数接受两个参数:url和target。该url传递给已经描述的下载功能。下载文件后,它会创建目标目录并提取下载内容。

由于下载的文件是.deb格式,因此首先必须使用" ar"命令。 .deb文件格式始终是一个名为data.tar.gz的文件,它是" meat"包裹。由于data.tar.gz文件也是压缩的,因此也需要提取它。 Tar处理它,但首先它会更改到目标目录,以便文件最终位于正确的位置。