我对使用函数中的bash删除URL的文件名感到困惑。这就是我所写的,但我是新手,并且无法弄清楚我是否做得对。
function file_download()
{
filename={$1##*/}
tar xzf $filename
}
file_download "http://www.url.com/test.zip"
我应该在“$ 1”附近加注?
答案 0 :(得分:2)
$
应该在表达式的外:
filename="${1##*/}"
这将按预期为您提供test.zip
。否则,您将获得{http://www.url.com/test.zip##*/}
。
答案 1 :(得分:1)
您应该使用basename
:
filename="$(basename "$1")"
这样,如果您尝试下载http://www.example.com/
,就不会得到无意义的空字符串。