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