引数として提供されたURLからファイルをダウンロードして処理するbashスクリプト

引数として提供されたURLからファイルをダウンロードして処理するbashスクリプト

bashスクリプトでは、単一のコマンドを使用してダウンロードしたファイルをダウンロードして処理できるようにしたいです。ファイル名は元のファイル名で保存する必要があります。

私が間違っている可能性がありますが、wgetが変数としてダウンロードした新しいファイル名をどのように取得しますか?

たとえば、process.sh "https://demo.io/files.php?action=download&id=123456"

#!/bin/bash
if [ "$#" -eq 0 ]
then
    echo "no argument supplied"
else
    echo "$# arguments:"
    for x in "$@"; do
        wget --content-disposition "$x"
        mediainfo "$new_file"
    done
fi

似たようなものが見つかりました。質問出力として正しいファイル名を生成するため、許可されていない答えがあります。彼らは以下をお勧めします:

wget --content-disposition -nv "https://demo.io/files.php?action=download&id=123456" 2>&1 |cut -d\" -f2

しかし、このような変数に入れようとすると失敗します。

...
new_file=$(wget --content-disposition -nv "$x" 2>&1 |cut -d\" -f2)
echo $new_file
mediainfo $new_file"

答え1

これはうまく機能し、ファイルを保存します。

#!/bin/bash
if [ "$#" -eq 0 ]
then
    echo "no argument supplied"
else
    echo "$# arguments:"
    for x in "$@"; do
        new_file=$(wget --content-disposition -nv "$x" 2>&1 |cut -d\" -f2)
        mediainfo "$new_file"
    done
fi

関連情報