SCO的bsh、ksh中与bash不同,与系统命令同名的shell函数会失效

发表于:2007-05-26来源:作者:点击数: 标签:
请教bourneshell的函数调用怎么写?怎么连下面的都执行不了?!郁闷 [code:1:e701fdff6e] test echo$1 echo$2 echoinput readnum1 readnum2 test$num1$num2 [/code:1:e701fdff6e] 整个执行过程: [code:1:e701fdff6e] #shtest.sh input 5 6 test.shtestargum

请教bourne shell 的函数调用怎么写?怎么连下面的都执行不了?!郁闷 

[code:1:e701fdff6e]

test() 

echo $1 
echo $2 

echo "input:" 
read num1 
read num2 
test $num1 $num2 
[/code:1:e701fdff6e]

整个执行过程:
[code:1:e701fdff6e]
#sh test.sh 
input: 


test.sh: test: argument expected 
[/code:1:e701fdff6e]

晕哦,在red hat 9.0下ksh/bash测试通过,unix5.0.4, 和unix5.0.5均通不过,无论bourne shell或ksh, 这是怎么回事?写法不一样吗,

 xchen301 回复于:2004-11-02 22:16:37
我写的一个程序里一个函数一直通不过,报上面一样的错误,请教大大指点一下莫非写法不一样?!

 CNL 回复于:2004-11-02 22:30:06
bash和bsh是两个不同的shell
bsh应该是${1}和${2}
看基本书比论坛里问要快,老大你更要带个好头。

 xchen301 回复于:2004-11-02 22:33:07
[quote:acd739748a="CNL"]bash和bsh是两个不同的shell
bsh应该是${1}和${2}
看基本书比论坛里问要快,老大你更要带个好头。[/quote:acd739748a]

不是啊CNL老大,是因为我用test做为函数名,在调用的时候unix把test做命令处理,呵呵,相当的乌龙~~~ :em16: 

改为其他函数名后通过~ :em13:

 xchen301 回复于:2004-11-02 22:35:49
奇怪的是linux可以接受这样的函数名,可见bash确实比bsh智能啊呵呵,

 nero_8888 回复于:2004-11-03 08:27:44
呵呵! 我已前也吃过这个亏!

没想到也有人犯同样的错误! 

 :mrgreen:  :mrgreen:  :mrgreen:

原文转自:http://www.ltesting.net