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