Bash - 我把报价放在正确的位置吗?

时间:2012-09-24 09:24:12

标签: bash shell

我对使用函数中的bash删除URL的文件名感到困惑。这就是我所写的,但我是新手,并且无法弄清楚我是否做得对。

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

}

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

我应该在“$ 1”附近加注?

2 个答案:

答案 0 :(得分:2)

$应该在表达式的

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

这将按预期为您提供test.zip。否则,您将获得{http://www.url.com/test.zip##*/}

答案 1 :(得分:1)

您应该使用basename

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

这样,如果您尝试下载http://www.example.com/,就不会得到无意义的空字符串。