인수로 제공된 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

관련 정보