関数で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##*/}
代わりに取得します。
basename
これには次のものを使用する必要があります。
filename="$(basename "$1")"
そうすれば、をダウンロードしようとしても、意味のない空の文字列になってしまうことはありませんhttp://www.example.com/
。