分页: 1 / 2

[问题]一个结构体和for语言的问题

发表于 : 2008-08-27 16:36
rabbitmc
请教各位大侠了:
在vi编辑器里的结构体的语法和在C语言下是一样吗?
[/code]#!/bin/bash
declare -i s
for(( i=0; i<100; i=$i+1 ))
do
s=s+i
done
提示for语句中变量有错误,为什么呢?

发表于 : 2008-08-27 16:45
eexpress
for ((
有一个空格

发表于 : 2008-08-27 16:45
eexpress
for ((
有一个空格吧

发表于 : 2008-08-27 16:51
aBiNg
for ((...)) 直接引用变量,不必用$。
这样:

代码: 全选

for((i=0;i<100;i++))
但多数bash语句引用变量得用$。

for的空格无关紧要。

发表于 : 2008-08-27 16:52
solcomo
没错啊
在我这可以...

发表于 : 2008-08-27 20:31
rabbitmc
各位大侠,我运行了,可是还是不成啊,知道原因吗?

发表于 : 2008-08-27 20:32
rabbitmc
还有就是想请教一下结构体的问题:在c语言下和在shell里面的语法是一样的吗?
谢谢

发表于 : 2008-08-27 20:34
eexpress
bash的 (())里面的,就是用c语法。
你提问,要贴出错误提示的,要不别人都是猜。

发表于 : 2008-08-27 21:57
rabbitmc
系统给的提示:3:Syntax error:Bad for loop variable
后来我按照各位大侠的方法都试过了,结果还是那个

发表于 : 2008-08-27 22:02
eexpress
☎ s=0;for((i=0;i<100;i=$i+1));do ((s=s+2));done;echo $s
200
你试试。

发表于 : 2008-08-27 22:03
ebok

代码: 全选

s=$(($s+$i))

发表于 : 2008-08-27 22:05
sinyadvan
dash的问题吧

代码: 全选

sudo dpkg-reconfigure dash
选NO

发表于 : 2008-08-27 22:05
ebok
for的(())里面用i++也可以,我试过。

发表于 : 2008-08-27 22:07
sinyadvan
LZ代码没错

发表于 : 2008-08-27 22:16
ebok
LZ应该用的是sh /path/file 执行吧?
用bash /path/file 执行是没问题的。