Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我对在函数中使用 bash 去除 URL 的文件名感到有点困惑。这是我写的,但我是新手,不知道我是否做得对。
function file_download() { filename={$1##*/} tar xzf $filename } file_download "http://www.url.com/test.zip"
我应该在“$ 1”周围加上引号吗?
$应该在表达式之外:
$
filename="${1##*/}"
test.zip正如预期的那样,这会给你。否则,你会得到{http://www.url.com/test.zip##*/}。
test.zip
{http://www.url.com/test.zip##*/}
您应该basename为此使用:
basename
filename="$(basename "$1")"
这样,如果您尝试下载http://www.example.com/.
http://www.example.com/