测试变量自己加1后打印结果,发现变量加1后,没有成功赋值回原变量

sh/bash/dash/ksh/zsh等Shell脚本
回复
flygun2005
帖子: 7
注册时间: 2009-01-10 13:44

测试变量自己加1后打印结果,发现变量加1后,没有成功赋值回原变量

#1

帖子 flygun2005 » 2009-01-13 12:29

我写了一个脚本,想测试变量自己加1,然后再打印结果,却发现变量加1后,没有赋值回原变量,大家可以试试:

代码: 全选

#!/bin/bash
num=1
num= expr $num "+" 1
echo "this is ${num} "
num= expr $num "+" 1
echo "aftert is ${num} "
执行结果是
2
this is 1
2
aftert is 1
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

Re: 测试变量自己加1后打印结果,发现变量加1后,没有成功赋值回原变量

#2

帖子 bones7456 » 2009-01-13 14:08

(( num++ ))
关注我的blog: ε==3
头像
cnkilior
论坛版主
帖子: 4984
注册时间: 2007-08-05 17:40

Re: 测试变量自己加1后打印结果,发现变量加1后,没有成功赋值回原变量

#3

帖子 cnkilior » 2009-01-14 17:43

flygun2005 写了:我写了一个脚本,想测试变量自己加1,然后再打印结果,却发现变量加1后,没有赋值回原变量,大家可以试试:

代码: 全选

#!/bin/bash
num=1
num= expr $num "+" 1
echo "this is ${num} "
num= expr $num "+" 1
echo "aftert is ${num} "
执行结果是
2
this is 1
2
aftert is 1

那么明顯空格。。。
你用debug模式運行這個腳本吧。

代码: 全选

[code]
#!/bin/bash -x
num=1
num= expr $num "+" 1
echo "this is ${num} "
num= expr $num "+" 1
echo "aftert is ${num} "
[/code]
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 测试变量自己加1后打印结果,发现变量加1后,没有成功赋值回原变量

#4

帖子 aerofox » 2009-01-15 6:11

代码: 全选

num= expr $num "+" 1
这句的意思是,执行 expr $num "+" 1,子进程中环境变量 n 的值为空串
ethan2514
帖子: 1
注册时间: 2009-04-08 14:38

Re: 测试变量自己加1后打印结果,发现变量加1后,没有成功赋值回原变量

#5

帖子 ethan2514 » 2009-04-08 14:44

写个例子你看:
SUM=`[/color]expr $SUM + 1`
第一、`这个符号是~下面的那个符号,别用成了“下面的那个符号
第二、=号后面,也就是`符号前无空格!
完毕!
回复