2009-09-04 112 views
2

以下代码在CentOS和Ubuntu O/s上按预期工作,但不在红帽子上。需要做出什么改变?红帽兼容性

CentOS版本5.3(最终) Linux操作系统Ubuntu 2.6.24-19泛型#1 SMP星期三06月18 14点43分41秒UTC 2008的i686的GNU/Linux

#!/bin/bash 

depot=$1 
table=$2 
database=$3 
combined="$depot$table" 

if [ "$table" = 'routes' -o "$table" = 'other_routes' ]; then 
echo 'first if successful' 

elif [ "$table" = 'bus_stops' ]; then 
echo 'elif successful' 

else 
echo 'else succsesful' 

fi 
+0

如果你解释了它的工作原理失败了,它可能会有帮助吗?红帽出了什么问题? – Glen 2009-09-04 13:11:02

回答

2

我有红帽企业版Linux和CentOS盒子里(我知道他们是同样的事情)

该脚本适用于他们两人同为我,所以我真的不明白OP的问题。

-bash-3.2$ ./foo.bash foo other_routes 
first if successful 
-bash-3.2$ ./foo.bash foo routes 
first if successful 
-bash-3.2$ ./foo.bash foo bus_stops 
elif successful 
-bash-3.2$ ./foo.bash foo another 
else succsesful 
0

CentOS的== RedHat的。你的问题没有意义。你使用的是什么版本的bash?你期望什么产出,你会得到什么?

0

CentOS!= RHEL。我没有看到你的突破点,但是我的两个系统都在运行,并且确实存在一些差异,至少如果你也使用RHEL。即使在RHEL中的CentOS上也不存在一些完整的功能,并且尽管发行版和内核匹配,但我偶尔也会在它们之间移植脚本时遇到问题。