我正在阅读bash脚本教程,这似乎应该可行,但我显然错过了一些东西:
isframecount=0
framecount=0
while read p; do
if ["$isframecount" -eq 0]
then
echo $p
$isframecount = 1
else
echo "frame count"
echo $p
$isframecount = 0
fi
done < $filenam
当我尝试运行上述操作时,我收到“命令未找到错误”;任何指针?
答案 0 :(得分:2)
留意重要的空间和不应该的空间。在这种情况下,if ["$isframecount" -eq 0]
应为if [ "$isframecount" -eq 0 ]
(请参阅[
之后和]
之前的空格)。
原因是[
实际上是程序的名称...自己看看...输入ls /bin/[
...现在,如果没有空格,那么bash会寻找一个名为["0"
的程序或类似的程序,这在您的路径中肯定不存在。
然后,相反的情况......变量赋值中=
周围必须没有空格。因此$isframecount = 1
应为isframecount=1
。请注意,我也删除了美元符号,这是要走的路。
答案 1 :(得分:2)
if [ "$isframecount" -eq 0 ]
方括号两侧都需要空格。
isframecount=1
没有美元符号,在赋值语句中=
周围没有空格。
答案 2 :(得分:2)
两个问题:
问题1:
您需要在test
运算符中包含空格。更改以下行:
if ["$isframecount" -eq 0]
到
if [ "$isframecount" -eq 0 ]
问题2:
$isframecount = 1
变量前应该没有$
符号,赋值运算符中没有空格
将其更改为isframecount=1