0

我对在函数中使用 bash 去除 URL 的文件名感到有点困惑。这是我写的,但我是新手,不知道我是否做得对。

function file_download()
{
    filename={$1##*/}
    tar xzf $filename

}

file_download "http://www.url.com/test.zip"

我应该在“$ 1”周围加上引号吗?

4

2 回答 2

2

$应该在表达式之外

filename="${1##*/}"

test.zip正如预期的那样,这会给你。否则,你会得到{http://www.url.com/test.zip##*/}

于 2012-09-24T09:29:40.453 回答
1

您应该basename为此使用:

filename="$(basename "$1")"

这样,如果您尝试下载http://www.example.com/.

于 2012-09-24T11:56:32.300 回答