2009-09-04 5 views
2

次のコードは、CentOSとUbuntuのO/Sでは正常に動作しますが、Red hatでは動作しません。どのような変更が必要ですか?赤い帽子の互換性

CentOSの(最終)5.3をリリース 、LinuxのUbuntuの2.6.24-19-ジェネリック#1 SMP水6月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

どのように失敗するのか説明しておけば助かりますか? Red Hatでは何がうまくいかないのですか? – Glen

答えて

2

私はここに、両方のRed Hat Enterprise 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にはいくつかの機能全部が存在せず、リリースとカーネルが一致していても毎回スクリプトを移植するときに問題が発生します。