Function steam脚本函数的解释

Function steam脚本函数的解释,function,steam,Function,Steam,我已经下载了一个脚本文件,它可以下载蒸汽机、依赖项,然后安装它们。我试图理解代码到底在做什么。我已经理解了它的某些部分,但无法理解某些功能。有人能解释一下这些函数的作用吗 download() { local url="$1" local filename="$(basename "$url")" if [ ! -f "$filename" ]; then wget -c "$url" -O "$filename.part" mv "$f

我已经下载了一个脚本文件,它可以下载蒸汽机、依赖项,然后安装它们。我试图理解代码到底在做什么。我已经理解了它的某些部分,但无法理解某些功能。有人能解释一下这些函数的作用吗

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"

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

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

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