[问题]shell函数的问题

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
头像
liujingjing5
帖子: 512
注册时间: 2006-10-12 1:21

[问题]shell函数的问题

#1

帖子 liujingjing5 » 2008-01-05 9:16

代码: 全选

#!/bin/bash
a=123
function change()
{
	$1=321
}
change a
echo $a
liujingjing@ubuntu:~/桌面$ ./abc
./abc: line 5: a=321:找不到命令
哪里写错了,还有形参是改变不了实参的,C有指针,shell中怎么改变实参呢?
头像
milujite
帖子: 644
注册时间: 2007-01-01 22:14
联系:

#2

帖子 milujite » 2008-01-05 11:31

$1有特殊含义阿。他代表命令的第一个参数
也就是./abc asdfa
那么$1就是asdfa了
头像
liujingjing5
帖子: 512
注册时间: 2006-10-12 1:21

#3

帖子 liujingjing5 » 2008-01-05 13:15

milujite 写了:$1有特殊含义阿。他代表命令的第一个参数
也就是./abc asdfa
那么$1就是asdfa了
不对,在函数里$1代表的是传入函数的第一个值a
我刚才请教了高手,正确的方法是 eval $1 = 321
回复