2009-09-04 117 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上也不存在一些完整的功能,並且儘管發行版和內核匹配,但我偶爾也會在它們之間移植腳本時遇到問題。