意外标记“done”附近出现语法错误

意外标记“done”附近出现语法错误

我试图让这个 while 循环(使用 nano)从此 URL 下载一些网站,但我不断收到错误“意外令牌‘完成’附近的语法错误”:

while read <FIRST-LAST> do
        echo FIRST-LAST
        curl -O https://www.uoguelph.ca/arts/history/people/FIRST-LAST
done < formatted_history.txt

答案1

  • 要么do应该出现在新行上,要么需要在其前面插入分号
  • <FIRST-LAST>实际上应该是 shell 变量的名称,并且FIRST-LAST应该是对该变量的引用。 <>不是 shell 变量的合法字符,因此我们可以推断这里必须用其他字符代替。 person在这种特殊情况下,似乎是一个很好的变量名。

我认为这样的事情应该效果更好:

while read person ; do
        echo "${person}"
        curl -O "https://www.uoguelph.ca/arts/history/people/${person}"
done < formatted_history.txt

这假设该文件formatted_history.txt实际上存在于当前目录中,并且是来自https://www.uoguelph.ca/arts/history/people/页面 - 类似于:

tara-abraham
donna-andrew
susan-armstrong-reid
... etc ...

相关内容