我有以下bash脚本,
#!/bin/bash
echo $SHELL
i=1
for img in ../img/*.png; do
echo $img
new=$(printf "../img/tmp/pyr%d.png" "$i")
echo $new
# cp "$img" "$new"
let i=i+1
done
# avconv -r 2 -i ../img/tmp/pyr%d.png -b:v 1000k ../pop_pyr.mp4
在../img
文件夹中,有文件pyr1920.png
,pyr1925.png
,...
当我运行此脚本时,我收到此错误
../img/pyr1920.png
../img/tmp/pyr1.png
make_video.sh: 10: make_video.sh: let: not found
../img/pyr1925.png
../img/tmp/pyr1.png
但是我将脚本粘贴在一个终端中,它完全正常。
../img/pyr1920.png
../img/tmp/pyr1.png
../img/pyr1925.png
../img/tmp/pyr2.png
我的环境是ubuntu 14.04。我知道default / bin / sh是破折号。我确保使用bash并按echo $SHELL
进行检查。
为什么它不能用作脚本但在终端上工作正常?我试图找到一个解决方案,但我能找到的只是“破折号”和“bash”设置。
答案 0 :(得分:1)
这样做:
i=$((i+1))
或
i=$(expr $i + 1)
答案 1 :(得分:0)
我很抱歉回答我的问题。
我在使用sh script.sh
而不是bash script.sh
运行我的脚本。 bash script.sh
工作正常。
但我不能通过脚本顶部的#!/bin/bash
指定它吗?
答案 2 :(得分:0)
我也遇到了同样的错误,检查是否发现这段代码可以满足您的需求
i=`expr $i + 1`