Совместимость с красной шляпой

Следующий код работает, как и ожидалось, на ОС CentOS и Ubuntu, но не на Red Hat. Какие изменения необходимо внести?

Выпуск CentOS 5.3 (окончательный) Linux ubuntu 2.6.24-19-generic #1 SMP Среда, 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

person shantanuo    schedule 04.09.2009    source источник
comment
Это может помочь, если вы объясните, как это работает, терпит неудачу? Что не так с Red Hat?   -  person Glen    schedule 04.09.2009


Ответы (3)


У меня здесь есть как Red Hat Enterprise Linux, так и CentOS (я знаю, что это одно и то же).

Этот скрипт работает для меня одинаково на обоих из них, поэтому я действительно не понимаю вопрос ОП.

-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
person Glen    schedule 04.09.2009

CentOS == RedHat. Ваш вопрос не имеет смысла. Какие версии bash вы используете? Какой результат вы ожидаете, и что вы получаете вместо этого?

person Roel    schedule 04.09.2009

CentOS!=RHEL. я не вижу, где ваша точка разрыва, но у меня работают обе системы, и действительно есть некоторые различия, по крайней мере, если вы тоже используете RHEL. даже некоторые целые функции отсутствуют в CentOS, которые есть в RHEL, и я время от времени испытываю проблемы при переносе скрипта между ними, хотя версия и ядро ​​совпадают.

person peet    schedule 22.03.2013