Porting a shell script from Solaris to Linux
Question
This should be pretty straightforward, but am not sure what it is complaining about.
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
This seems to work fine on Solaris and AIX, but on Linux, I get this error messages:
: 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" ]
Why does it not like the elif? Or, is it complaining about something else?
Solution
Got the answer finally, it is thanks to something completely random, something to do with format:
I had transferred the file over from my windows machine, and I guess Linux is just a bitch that can't handle it. Solaris and AIX do just fine.
Used this command. dos2unix *.sh
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow