编写一个代码,我将使用存储在某个文件中的网址下载某些图像,然后继续使用包含图像名称的另一个文件分配正确的名称。
我尝试过以下代码
#!/bin/bash
COUNT=$(cat Final | wc -l)
COUNT=$(($COUNT+1))
num=1
while read line
do
if [ $num != $COUNT ]
then
echo $num
name=$(sed '$num q' SourceNameList)
echo $name
wget $line -O /Users/ankit/Downloads/imagesdownloded/$name
num=$(($num+1))
fi
done < imagelinks
以下代码面临错误:
name=$(sed '$num q' SourceNameList)
寻找如何使用变量
使用这个特殊的sed命令也试过以下
name=$(sed "$numq" SourceNameList)
答案 0 :(得分:3)
name=$(sed '$num q' SourceNameList)
使用单引号,基本变量将不展开。
name=$(sed "$numq" SourceNameList)
您正在尝试展开名为numq
你想要一个
name=$(sed "$num q" SourceNameList)
name=$(sed "${num}q" SourceNameList)
但是,您不必为imagelinks文件的每一行调用sed:您可以同时从2个文件中读取
#!/bin/bash
COUNT=$(( $(wc -l < Final) + 1 ))
num=0
while ((++num < COUNT)) && read -u3 line && read -u4 name
do
echo $num
echo $name
wget "$line" -O /Users/ankit/Downloads/imagesdownloded/"$name"
done 3< imagelinks 4< SourceNameList