我有一个脚本,它使用 wget 并将输出保存到一个名称为递增变量的文件中。
计数器.sh:
number=1
for i in $(cat file)
do
wget $i -S -O $number.html 2>&1
((number++))
sleep 1
echo 'done'
done
我可以从命令行运行脚本,它运行良好。但是,当我从另一个脚本中执行它时:
脚本 2:
./counter.sh
我收到以下输出:
scripts/counter.sh: 5: scripts/counter.sh: number++: not found
done
scripts/counter.sh: 5: scripts/counter.sh: number++: not found
done
scripts/counter.sh: 5: scripts/counter.sh: number++: not found
done
scripts/counter.sh: 5: scripts/counter.sh: number++: not found
done
由于某种原因,计数器 ++ 在从另一个脚本中执行时不起作用。我怎样才能解决这个问题?
利用
或者
或使其兼容
通常应该使用 IDE 或将您的代码粘贴到https://www.shellcheck.net以避免此类问题。
看起来您的 shell 正在尝试对变量进行操作,
number++
而不是对变量应用算术运算number
。这可能是因为++
您的 shell 不支持该语法。为了解决这个问题,您可以指定您希望脚本执行的 shell。为此,添加
作为脚本的第一行。