bash 脚本,从作为参数给出的 url 下载并处理文件

bash 脚本,从作为参数给出的 url 下载并处理文件

我希望能够使用 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

相关内容