【发布时间】:2021-09-08 19:15:59
【问题描述】:
我尝试添加一个数组 -> 读取文件名,然后下载此文件。我还添加了 2 个名称作为忽略列表(有效),但如果我想在 while 循环中下载文件,我会收到此错误:
curl: (3) URL using bad/illegal format or missing URL
我的代码试试:
plugins=()
for filename in $(ls $HOME/serverfiles/oxide/plugins/)
do
plugins+=($filename)
done;
count=0
while [ "x${plugins[count]}" != "x" ]
do
if [ “${plugins[count]}” = “CupboardLimitNotifier.cs” ]
then
count=$(( $count + 1 ))
elif [ “${plugins[count]}” = “ChatResponder.cs” ]
then
count=$(( $count + 1 ))
else
curl https://umod.org/plugins/${plugins[count]} -o ${plugins[count]}
count=$(( $count + 1 ))
fi
done
如果我使用 echo 而不是 curl,我会得到正确的 URL(不带 -o)...
https://umod.org/plugins/AdminRadar.cs
https://umod.org/plugins/EntityOwner.cs
我的意图: 无法在 umod.org 上获取任何版本数据。所以我在新版本的主插件后下载核心系统更新。之后,插件将被自动下载并覆盖。
【问题讨论】:
-
用shellcheck.net检查你的脚本
-
如果您的代码在语法上是正确的,它将重新下载插件目录中找到的任何插件文件,如果它不是
CupboardLimitNotifier.cs或ChatResponder.cs。除了来自 KamilCuk 的完全恰当的评论,重新下载你已经拥有的插件似乎是不恰当的。你能澄清一下你的代码的意图吗? -
@lumpa:不要到处放一个
echo,它无论如何都不能提供可靠的信息,而是用set -x运行你的程序并分析你得到的输出。 -
请注意您的帖子中有智能引号; 如果那些在实际脚本中,它们会导致问题。
标签: bash