分页: 1 / 1
如何处理变量名是变量的情况?
发表于 : 2012-04-24 16:51
由 zhouwei400
比如是说一个函数有许多参数 我要通过一个变量来访问其中一个参数
例如 当变量i 等于 2时我就把 $3 赋值给 另一个变量temp 我google了一下,似乎是用eval 但是总是出错
代码: 全选
temp=eval $`expr $i + 1`
输出为
line 19: $2: command not found
用的是bash 大家能告诉我怎么办吗?
Re: 如何处理变量名是变量的情况?
发表于 : 2012-04-24 17:06
由 jtshs256
纯数字能做变量名么……
Re: 如何处理变量名是变量的情况?
发表于 : 2012-04-24 17:10
由 zhouwei400
jtshs256 写了:纯数字能做变量名么……
不是自己声明的,函数的参数就是通过$1 $2 来访问的
Re: 如何处理变量名是变量的情况?
发表于 : 2012-04-24 17:50
由 lilydjwg
代码: 全选
eval "temp=$`expr $i + 1`"
这样行不?
PS: 纯数字可以作变量的。
Re: 如何处理变量名是变量的情况?
发表于 : 2012-04-24 18:09
由 zhouwei400
lilydjwg 写了:代码: 全选
eval "temp=$`expr $i + 1`"
这样行不?
PS: 纯数字可以作变量的。
行了 ,非常感谢

Re: 如何处理变量名是变量的情况?
发表于 : 2012-04-25 23:32
由 zhouwei400
又有新问题了,要是参数数目大于10怎么办呢?
Re: 如何处理变量名是变量的情况?
发表于 : 2012-04-25 23:37
由 lilydjwg
zhouwei400 写了:又有新问题了,要是参数数目大于10怎么办呢?
Re: 如何处理变量名是变量的情况?
发表于 : 2012-04-25 23:43
由 zhouwei400
lilydjwg 写了:zhouwei400 写了:又有新问题了,要是参数数目大于10怎么办呢?
可是这样写还是会报错啊:
代码: 全选
eval ”temp=${`expr $i + 1`}“
Re: 如何处理变量名是变量的情况?
发表于 : 2012-04-26 0:25
由 lilydjwg
代码: 全选
eval "temp=\${`expr $i + 1`}"
Re: 如何处理变量名是变量的情况?
发表于 : 2012-04-26 5:51
由 aerofox
其实很多情况下都不需要这种处理方法。
考虑用 shift 吧。
Re: 如何处理变量名是变量的情况?
发表于 : 2012-04-27 12:43
由 zhouwei400
lilydjwg 写了:代码: 全选
eval "temp=\${`expr $i + 1`}"
恩,这是可行的
aerofox 写了:其实很多情况下都不需要这种处理方法。
考虑用 shift 吧。
最终用shift解决问题了