関数で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/。