Портирование сценария оболочки из Solaris в Linux
Это должно быть довольно просто, но я не уверен, на что он жалуется.
type=${1-"-Debug"};
version=${2-"-0"};
echo "We are going to be building eValuate in build mode: " $type
if [[ $version = -1 ]]
then
echo "We are going to be building eValuate with omniORB-4.1.4"
else
echo "We are going to be building eValuate with omniORB-4.0.4"
fi
if [ $PLATFORM = "HPUX" ]
then
if [ $type = -release ]
then
export MAKEFILE_MAIN=$PWD/common/makefile/makefile.hp
export MAKEFILE_DEFS=$PWD/common/makefile/makefile.hp.rls
shift
else
export MAKEFILE_MAIN=$PWD/common/makefile/makefile.hp
export MAKEFILE_DEFS=$MAKEFILE_MAIN
fi
elif [ $PLATFORM = "AIX" ]
then
mv $PWD/Calculations/CalculationSTD/makefileAIX $PWD/Calculations/CalculationSTD/makefile
mv $PWD/Calculations/CalculationSTD/StandardCalculationAIX.cpp $PWD/Calculations/CalculationSTD/StandardCalculation.cpp
rm -r $PWD/Calculations/CalculationSTD/Carleton
if [ $type = -release ]
then
export MAKEFILE_MAIN=$PWD/common/makefile/makefile.aix
export MAKEFILE_DEFS=$PWD/common/makefile/makefile.aix.rls
shift
else
export MAKEFILE_MAIN=$PWD/common/makefile/makefile.aix
export MAKEFILE_DEFS=$MAKEFILE_MAIN
fi
fi
Похоже, это работает нормально в Solaris и AIX, но в Linux я получаю следующие сообщения об ошибках:
: command not found 1:
: command not found 2:
We are going to be building eValuate in build mode: -release
./setpath.sh1: line 22: syntax error near unexpected token `elif'
'/setpath.sh1: line 22: ` elif [ $PLATFORM = "AIX" ]
Почему это не нравится элиф? Или жаловаться на что-то еще?
1 ответ
Решение
Наконец-то получил ответ, что-то совершенно случайное, что-то связанное с форматом:
Я перенес файл с моего компьютера с Windows, и я думаю, что Linux - это просто сука, которая не может с этим справиться. Solaris и AIX прекрасно работают.
Использовал эту команду. dos2unix *.sh