common UNIX script which is to work in HP and SUN environment

I have two different UNIX scripts for updating Co-ordinate points which are working fine seperately in HP and SUN environments. But I am trying to write a common UNIX script which is to work in HP and SUN environment.

The following are the scripts i am using

SUN:

#!/bin/ksh
info () {
cat << EOT


Shell script to translate VSIGN im components in X, Y and Z dirction
Each original im file remains unchanged and a new file file1_mv.im
is created.
Usage:
move_im x=100 y=-200 z=0 file.im
x Translation in X-direction
y Translation in Y-direction
z Translation in Z-direction
file.im im file

-h This information


EOT
}
if [[ $1 = "-h" ]]; then
info
exit
fi
if [[ $4 = "" ]]
then
info
exit
fi
echo "stop input" > /tmp/move_im_dummy_tmp.file
echo "Start move_im"
for file in "$@"
do
echo $file
st=`echo $file | cut -c 2`
dir=`echo $file | cut -c 1-3`
if [[ $st != "=" ]]
then
#echo $dir
if [[ $dir != "dir" ]]
then
base_file=`echo $file | cut -d. -f1`
old_file=`echo $base_file".im"`
new_file=`echo $base_file"_mv.im"`
echo "Base File:"
echo $old_file
echo "New File:"
echo $new_file
if [[ -f $new_file ]]
then
echo $new_file " exists already"
echo "move_im terminated"
exit
fi
/usr/bin/cp -f $old_file $new_file
echo "O 1 "$new_file > temp_piok.script
/usr/bin/nawk -v $1 -v $2 -v $3 '{
if ( x >= 0) {
printf("(VG 1) = (VG 1) + %-7.1f\n",x)
}
if ( x < 0) {
x_abs=(xx)^0.5
printf("(VG 1) = (VG 1) - %-7.1f\n",x_abs)
}
if ( y >= 0) {
printf("(VG 2) = (VG 2) + %-7.1f\n",y)
}
if ( y < 0) {
y_abs=(y
y)^0.5
printf("(VG 2) = (VG 2) - %-7.1f\n",y_abs)
}
if ( z >= 0) {
printf("(VG 3) = (VG 3) + %-7.1f\n",z)
}
if ( z < 0) {
z_abs=(zz)^0.5
printf("(VG 3) = (VG 3) - %-7.1f\n",z_abs)
}
# printf("V VG\n")
} ' < /tmp/move_im_dummy_tmp.file >> temp_piok.script
# echo " $# " >> temp_piok.script
echo " "
echo "Invoking pius piok to update Geometry"
echo " "
pius piok < temp_piok.script
echo " "
echo "pius piok completed"
echo " "
echo "O 1 "$new_file > temp_piok.script
/usr/bin/nawk -v $1 -v $2 -v $3 '{
if ( x >= 0) {
printf("('"'MCMpar'"' 8) = ('"'MCMpar'"' 8) + %-7.1f\n",x)
}
if ( x < 0) {
x_abs=(x
x)^0.5
printf("('"'MCMpar'"' 8) = ('"'MCMpar'"' 8) - %-7.1f\n",x_abs)
}
if ( y >= 0) {
printf("('"'MCMpar'"' 9) = ('"'MCMpar'"' 9) + %-7.1f\n",y)
}
if ( y < 0) {
y_abs=(yy)^0.5
printf("('"'MCMpar'"' 9) = ('"'MCMpar'"' 9) - %-7.1f\n",y_abs)
}
if ( z >= 0) {
printf("('"'MCMpar'"' 10) = ('"'MCMpar'"' 10) + %-7.1f\n",z)
}
if ( z < 0) {
z_abs=(z
z)^0.5
printf("('"'MCMpar'"' 10) = ('"'MCMpar'"' 10) - %-7.1f\n",z_abs)
}
# printf("V VG\n")
} ' < /tmp/move_im_dummy_tmp.file >> temp_piok.script
# echo " $# " >> temp_piok.script
echo " "
echo "Invoking pius piok to update COG coordinates"
echo " "
pius piok < temp_piok.script
fi
fi
done
echo " "
echo "pius piok completed"
echo " "
/usr/bin/rm -f temp_piok.script /tmp/move_im_dummy_tmp.file
echo "move_im succesfully completed"
exit

HP:

#!/bin/ksh
info () {
cat << EOT


Shell script to translate VSIGN im components in X, Y and Z dirction
Each original im file remains unchanged and a new file file1_mv.im
is created.
Usage:
move_im x=100 y=-200 z=0 file.im
x Translation in X-direction
y Translation in Y-direction
z Translation in Z-direction
file.im im file

-h This information


EOT
}
if [[ $1 = "-h" ]]; then
info
exit
fi
if [[ $4 = "" ]]
then
info
exit
fi
echo "stop input" > /tmp/move_im_dummy_tmp.file
echo "Start move_im"
for file in "$@"
do
echo $file
st=`echo $file | cut -c 2`
dir=`echo $file | cut -c 1-3`
if [[ $st != "=" ]]
then
#echo $dir
if [[ $dir != "dir" ]]
then
base_file=`echo $file | cut -d. -f1`
old_file=`echo $base_file".im"`
new_file=`echo $base_file"_mv.im"`
echo "Base File:"
echo $old_file
echo "New File:"
echo $new_file
if [[ -f $new_file ]]
then
echo $new_file " exists already"
echo "move_im terminated"
exit
fi
/usr/bin/cp -f $old_file $new_file
echo "O 1 "$new_file > temp_piok.script
/usr/bin/awk -v $1 -v $2 -v $3 '{
if ( x >= 0) {
printf("(VG 1) = (VG 1) + %-7.1f\n",x)
}
if ( x < 0) {
x_abs=(xx)^0.5
printf("(VG 1) = (VG 1) - %-7.1f\n",x_abs)
}
if ( y >= 0) {
printf("(VG 2) = (VG 2) + %-7.1f\n",y)
}
if ( y < 0) {
y_abs=(y
y)^0.5
printf("(VG 2) = (VG 2) - %-7.1f\n",y_abs)
}
if ( z >= 0) {
printf("(VG 3) = (VG 3) + %-7.1f\n",z)
}
if ( z < 0) {
z_abs=(zz)^0.5
printf("(VG 3) = (VG 3) - %-7.1f\n",z_abs)
}
# printf("V VG\n")
} ' < /tmp/move_im_dummy_tmp.file >> temp_piok.script
# echo " $# " >> temp_piok.script
echo " "
echo "Invoking pius piok to update Geometry"
echo " "
/ford/thishost/unix/apps_bin/pius piok < temp_piok.script
echo " "
echo "pius piok completed"
echo " "
echo "O 1 "$new_file > temp_piok.script
/usr/bin/awk -v $1 -v $2 -v $3 '{
if ( x >= 0) {
printf("('"'MCMpar'"' 8) = ('"'MCMpar'"' 8) + %-7.1f\n",x)
}
if ( x < 0) {
x_abs=(x
x)^0.5
printf("('"'MCMpar'"' 8) = ('"'MCMpar'"' 8) - %-7.1f\n",x_abs)
}
if ( y >= 0) {
printf("('"'MCMpar'"' 9) = ('"'MCMpar'"' 9) + %-7.1f\n",y)
}
if ( y < 0) {
y_abs=(yy)^0.5
printf("('"'MCMpar'"' 9) = ('"'MCMpar'"' 9) - %-7.1f\n",y_abs)
}
if ( z >= 0) {
printf("('"'MCMpar'"' 10) = ('"'MCMpar'"' 10) + %-7.1f\n",z)
}
if ( z < 0) {
z_abs=(z
z)^0.5
printf("('"'MCMpar'"' 10) = ('"'MCMpar'"' 10) - %-7.1f\n",z_abs)
}
# printf("V VG\n")
} ' < /tmp/move_im_dummy_tmp.file >> temp_piok.script
# echo " $# " >> temp_piok.script
echo " "
echo "Invoking pius piok to update COG coordinates"
echo " "
/ford/thishost/unix/apps_bin/pius piok < temp_piok.script
fi
fi
done
echo " "
echo "pius piok completed"
echo " "
/usr/bin/rm -f temp_piok.script /tmp/move_im_dummy_tmp.file
echo "move_im succesfully completed"
exit

Please kindly help me ane one interested to sort out this issue by changing two seperate scripts into single common scripts

thanks and regards
Ramkumar

You have a load of other tags, please add code tags - the one thing that would make the code readable. Thanks.

write a single script (include both scripts in it)

using "uname" find out which OS it is running and then using "if" run either of the scripts.

if os="A" then

<Paste Script-1>

else

<Paste Script-2>

Regards,

My sincere thanks to prvnrk.

I tried and it is not working. Pls find below the error i got

syntax error at line 149:'else' unexpected

do favour in sort out this issue.

regards,

ramkumar

i gave you the idea in general not syntactically.

Can you send your final script (with both codes and if condition) to fix your error.

Regards,

final script

#!/bin/ksh
if [[ $uname = $SunOS]]; then
info () {
cat << EOT


Shell script to translate VSIGN im components in X, Y and Z dirction
Each original im file remains unchanged and a new file file1_mv.im
is created.
Usage:
move_im x=100 y=-200 z=0 file.im
x Translation in X-direction
y Translation in Y-direction
z Translation in Z-direction
file.im im file

-h This information


EOT
}
if [[ $1 = "-h" ]]; then
info
exit
fi
if [[ $4 = "" ]]
then
info
exit
fi
echo "stop input" > /tmp/move_im_dummy_tmp.file
echo "Start move_im"
for file in "$@"
do
echo $file
st=`echo $file | cut -c 2`
dir=`echo $file | cut -c 1-3`
if [[ $st != "=" ]]
then
#echo $dir
if [[ $dir != "dir" ]]
then
base_file=`echo $file | cut -d. -f1`
old_file=`echo $base_file".im"`
new_file=`echo $base_file"_mv.im"`
echo "Base File:"
echo $old_file
echo "New File:"
echo $new_file
if [[ -f $new_file ]]
then
echo $new_file " exists already"
echo "move_im terminated"
exit
fi
/usr/bin/cp -f $old_file $new_file
echo "O 1 "$new_file > temp_piok.script
/usr/bin/nawk -v $1 -v $2 -v $3 '{
if ( x >= 0) {
printf("(VG 1) = (VG 1) + %-7.1f\n",x)
}
if ( x < 0) {
x_abs=(xx)^0.5
printf("(VG 1) = (VG 1) - %-7.1f\n",x_abs)
}
if ( y >= 0) {
printf("(VG 2) = (VG 2) + %-7.1f\n",y)
}
if ( y < 0) {
y_abs=(y
y)^0.5
printf("(VG 2) = (VG 2) - %-7.1f\n",y_abs)
}
if ( z >= 0) {
printf("(VG 3) = (VG 3) + %-7.1f\n",z)
}
if ( z < 0) {
z_abs=(zz)^0.5
printf("(VG 3) = (VG 3) - %-7.1f\n",z_abs)
}
# printf("V VG\n")
} ' < /tmp/move_im_dummy_tmp.file >> temp_piok.script
# echo " $# " >> temp_piok.script
echo " "
echo "Invoking pius piok to update Geometry"
echo " "
pius piok < temp_piok.script
echo " "
echo "pius piok completed"
echo " "
echo "O 1 "$new_file > temp_piok.script
/usr/bin/nawk -v $1 -v $2 -v $3 '{
if ( x >= 0) {
printf("('"'MCMpar'"' 8) = ('"'MCMpar'"' 8) + %-7.1f\n",x)
}
if ( x < 0) {
x_abs=(x
x)^0.5
printf("('"'MCMpar'"' 8) = ('"'MCMpar'"' 8) - %-7.1f\n",x_abs)
}
if ( y >= 0) {
printf("('"'MCMpar'"' 9) = ('"'MCMpar'"' 9) + %-7.1f\n",y)
}
if ( y < 0) {
y_abs=(yy)^0.5
printf("('"'MCMpar'"' 9) = ('"'MCMpar'"' 9) - %-7.1f\n",y_abs)
}
if ( z >= 0) {
printf("('"'MCMpar'"' 10) = ('"'MCMpar'"' 10) + %-7.1f\n",z)
}
if ( z < 0) {
z_abs=(z
z)^0.5
printf("('"'MCMpar'"' 10) = ('"'MCMpar'"' 10) - %-7.1f\n",z_abs)
}
# printf("V VG\n")
} ' < /tmp/move_im_dummy_tmp.file >> temp_piok.script
# echo " $# " >> temp_piok.script
echo " "
echo "Invoking pius piok to update COG coordinates"
echo " "
pius piok < temp_piok.script
fi
fi
done
echo " "
echo "pius piok completed"
echo " "
/usr/bin/rm -f temp_piok.script /tmp/move_im_dummy_tmp.file
echo "move_im succesfully completed"
exit

else

#!/bin/ksh
info () {
cat << EOT


Shell script to translate VSIGN im components in X, Y and Z dirction
Each original im file remains unchanged and a new file file1_mv.im
is created.
Usage:
move_im x=100 y=-200 z=0 file.im
x Translation in X-direction
y Translation in Y-direction
z Translation in Z-direction
file.im im file

-h This information


EOT
}
if [[ $1 = "-h" ]]; then
info
exit
fi
if [[ $4 = "" ]]
then
info
exit
fi
echo "stop input" > /tmp/move_im_dummy_tmp.file
echo "Start move_im"
for file in "$@"
do
echo $file
st=`echo $file | cut -c 2`
dir=`echo $file | cut -c 1-3`
if [[ $st != "=" ]]
then
#echo $dir
if [[ $dir != "dir" ]]
then
base_file=`echo $file | cut -d. -f1`
old_file=`echo $base_file".im"`
new_file=`echo $base_file"_mv.im"`
echo "Base File:"
echo $old_file
echo "New File:"
echo $new_file
if [[ -f $new_file ]]
then
echo $new_file " exists already"
echo "move_im terminated"
exit
fi
/usr/bin/cp -f $old_file $new_file
echo "O 1 "$new_file > temp_piok.script
/usr/bin/awk -v $1 -v $2 -v $3 '{
if ( x >= 0) {
printf("(VG 1) = (VG 1) + %-7.1f\n",x)
}
if ( x < 0) {
x_abs=(xx)^0.5
printf("(VG 1) = (VG 1) - %-7.1f\n",x_abs)
}
if ( y >= 0) {
printf("(VG 2) = (VG 2) + %-7.1f\n",y)
}
if ( y < 0) {
y_abs=(y
y)^0.5
printf("(VG 2) = (VG 2) - %-7.1f\n",y_abs)
}
if ( z >= 0) {
printf("(VG 3) = (VG 3) + %-7.1f\n",z)
}
if ( z < 0) {
z_abs=(zz)^0.5
printf("(VG 3) = (VG 3) - %-7.1f\n",z_abs)
}
# printf("V VG\n")
} ' < /tmp/move_im_dummy_tmp.file >> temp_piok.script
# echo " $# " >> temp_piok.script
echo " "
echo "Invoking pius piok to update Geometry"
echo " "
/ford/thishost/unix/apps_bin/pius piok < temp_piok.script
echo " "
echo "pius piok completed"
echo " "
echo "O 1 "$new_file > temp_piok.script
/usr/bin/awk -v $1 -v $2 -v $3 '{
if ( x >= 0) {
printf("('"'MCMpar'"' 8) = ('"'MCMpar'"' 8) + %-7.1f\n",x)
}
if ( x < 0) {
x_abs=(x
x)^0.5
printf("('"'MCMpar'"' 8) = ('"'MCMpar'"' 8) - %-7.1f\n",x_abs)
}
if ( y >= 0) {
printf("('"'MCMpar'"' 9) = ('"'MCMpar'"' 9) + %-7.1f\n",y)
}
if ( y < 0) {
y_abs=(yy)^0.5
printf("('"'MCMpar'"' 9) = ('"'MCMpar'"' 9) - %-7.1f\n",y_abs)
}
if ( z >= 0) {
printf("('"'MCMpar'"' 10) = ('"'MCMpar'"' 10) + %-7.1f\n",z)
}
if ( z < 0) {
z_abs=(z
z)^0.5
printf("('"'MCMpar'"' 10) = ('"'MCMpar'"' 10) - %-7.1f\n",z_abs)
}
# printf("V VG\n")
} ' < /tmp/move_im_dummy_tmp.file >> temp_piok.script
# echo " $# " >> temp_piok.script
echo " "
echo "Invoking pius piok to update COG coordinates"
echo " "
/ford/thishost/unix/apps_bin/pius piok < temp_piok.script
fi
fi
done
echo " "
echo "pius piok completed"
echo " "
/usr/bin/rm -f temp_piok.script /tmp/move_im_dummy_tmp.file
echo "move_im succesfully completed"
exit

kindly do favour and regards

ramkumar

There're lot of basic mistakes in your script.

It should be like below:

+++++++++++

#!/bin/ksh
os=`uname -s`
if [ "${os}" == "SunOS" ]; then

info () {
cat << EOT
**********************************************************************
Shell script to translate VSIGN im components in X, Y and Z dirction
Each original im file remains unchanged and a new file file1_mv.im
is created.
Usage:
move_im x=100 y=-200 z=0 file.im
x Translation in X-direction
y Translation in Y-direction
z Translation in Z-direction
file.im im file

-h This information

**********************************************************************
EOT
}
if [[ $1 = "-h" ]]; then
info
exit
fi
if [[ $4 = "" ]]
then
info
exit
fi
echo "stop input" > /tmp/move_im_dummy_tmp.file
echo "Start move_im"
for file in "$@"
do
echo $file
st=`echo $file | cut -c 2`
dir=`echo $file | cut -c 1-3`
if [[ $st != "=" ]]
then
#echo $dir
if [[ $dir != "dir" ]]
then
base_file=`echo $file | cut -d. -f1`
old_file=`echo $base_file".im"`
new_file=`echo $base_file"_mv.im"`
echo "Base File:"
echo $old_file
echo "New File:"
echo $new_file
if [[ -f $new_file ]]
then
echo $new_file " exists already"
echo "move_im terminated"
exit
fi
/usr/bin/cp -f $old_file $new_file
echo "O 1 "$new_file > temp_piok.script
/usr/bin/nawk -v $1 -v $2 -v $3 '{
if ( x >= 0) {
printf("(VG 1) = (VG 1) + %-7.1f\n",x)
}
if ( x < 0) {
x_abs=(xx)^0.5
printf("(VG 1) = (VG 1) - %-7.1f\n",x_abs)
}
if ( y >= 0) {
printf("(VG 2) = (VG 2) + %-7.1f\n",y)
}
if ( y < 0) {
y_abs=(y
y)^0.5
printf("(VG 2) = (VG 2) - %-7.1f\n",y_abs)
}
if ( z >= 0) {
printf("(VG 3) = (VG 3) + %-7.1f\n",z)
}
if ( z < 0) {
z_abs=(zz)^0.5
printf("(VG 3) = (VG 3) - %-7.1f\n",z_abs)
}
# printf("V VG\n")
} ' < /tmp/move_im_dummy_tmp.file >> temp_piok.script
# echo " $# " >> temp_piok.script
echo " "
echo "Invoking pius piok to update Geometry"
echo " "
pius piok < temp_piok.script
echo " "
echo "pius piok completed"
echo " "
echo "O 1 "$new_file > temp_piok.script
/usr/bin/nawk -v $1 -v $2 -v $3 '{
if ( x >= 0) {
printf("('"'MCMpar'"' 8) = ('"'MCMpar'"' 8) + %-7.1f\n",x)
}
if ( x < 0) {
x_abs=(x
x)^0.5
printf("('"'MCMpar'"' 8) = ('"'MCMpar'"' 8) - %-7.1f\n",x_abs)
}
if ( y >= 0) {
printf("('"'MCMpar'"' 9) = ('"'MCMpar'"' 9) + %-7.1f\n",y)
}
if ( y < 0) {
y_abs=(yy)^0.5
printf("('"'MCMpar'"' 9) = ('"'MCMpar'"' 9) - %-7.1f\n",y_abs)
}
if ( z >= 0) {
printf("('"'MCMpar'"' 10) = ('"'MCMpar'"' 10) + %-7.1f\n",z)
}
if ( z < 0) {
z_abs=(z
z)^0.5
printf("('"'MCMpar'"' 10) = ('"'MCMpar'"' 10) - %-7.1f\n",z_abs)
}
# printf("V VG\n")
} ' < /tmp/move_im_dummy_tmp.file >> temp_piok.script
# echo " $# " >> temp_piok.script
echo " "
echo "Invoking pius piok to update COG coordinates"
echo " "
pius piok < temp_piok.script
fi
fi
done
echo " "
echo "pius piok completed"
echo " "
/usr/bin/rm -f temp_piok.script /tmp/move_im_dummy_tmp.file
echo "move_im succesfully completed"
exit

else

info () {
cat << EOT
**********************************************************************
Shell script to translate VSIGN im components in X, Y and Z dirction
Each original im file remains unchanged and a new file file1_mv.im
is created.
Usage:
move_im x=100 y=-200 z=0 file.im
x Translation in X-direction
y Translation in Y-direction
z Translation in Z-direction
file.im im file

-h This information

**********************************************************************
EOT
}
if [[ $1 = "-h" ]]; then
info
exit
fi
if [[ $4 = "" ]]
then
info
exit
fi
echo "stop input" > /tmp/move_im_dummy_tmp.file
echo "Start move_im"
for file in "$@"
do
echo $file
st=`echo $file | cut -c 2`
dir=`echo $file | cut -c 1-3`
if [[ $st != "=" ]]
then
#echo $dir
if [[ $dir != "dir" ]]
then
base_file=`echo $file | cut -d. -f1`
old_file=`echo $base_file".im"`
new_file=`echo $base_file"_mv.im"`
echo "Base File:"
echo $old_file
echo "New File:"
echo $new_file
if [[ -f $new_file ]]
then
echo $new_file " exists already"
echo "move_im terminated"
exit
fi
/usr/bin/cp -f $old_file $new_file
echo "O 1 "$new_file > temp_piok.script
/usr/bin/awk -v $1 -v $2 -v $3 '{
if ( x >= 0) {
printf("(VG 1) = (VG 1) + %-7.1f\n",x)
}
if ( x < 0) {
x_abs=(xx)^0.5
printf("(VG 1) = (VG 1) - %-7.1f\n",x_abs)
}
if ( y >= 0) {
printf("(VG 2) = (VG 2) + %-7.1f\n",y)
}
if ( y < 0) {
y_abs=(y
y)^0.5
printf("(VG 2) = (VG 2) - %-7.1f\n",y_abs)
}
if ( z >= 0) {
printf("(VG 3) = (VG 3) + %-7.1f\n",z)
}
if ( z < 0) {
z_abs=(zz)^0.5
printf("(VG 3) = (VG 3) - %-7.1f\n",z_abs)
}
# printf("V VG\n")
} ' < /tmp/move_im_dummy_tmp.file >> temp_piok.script
# echo " $# " >> temp_piok.script
echo " "
echo "Invoking pius piok to update Geometry"
echo " "
/ford/thishost/unix/apps_bin/pius piok < temp_piok.script
echo " "
echo "pius piok completed"
echo " "
echo "O 1 "$new_file > temp_piok.script
/usr/bin/awk -v $1 -v $2 -v $3 '{
if ( x >= 0) {
printf("('"'MCMpar'"' 8) = ('"'MCMpar'"' 8) + %-7.1f\n",x)
}
if ( x < 0) {
x_abs=(x
x)^0.5
printf("('"'MCMpar'"' 8) = ('"'MCMpar'"' 8) - %-7.1f\n",x_abs)
}
if ( y >= 0) {
printf("('"'MCMpar'"' 9) = ('"'MCMpar'"' 9) + %-7.1f\n",y)
}
if ( y < 0) {
y_abs=(yy)^0.5
printf("('"'MCMpar'"' 9) = ('"'MCMpar'"' 9) - %-7.1f\n",y_abs)
}
if ( z >= 0) {
printf("('"'MCMpar'"' 10) = ('"'MCMpar'"' 10) + %-7.1f\n",z)
}
if ( z < 0) {
z_abs=(z
z)^0.5
printf("('"'MCMpar'"' 10) = ('"'MCMpar'"' 10) - %-7.1f\n",z_abs)
}
# printf("V VG\n")
} ' < /tmp/move_im_dummy_tmp.file >> temp_piok.script
# echo " $# " >> temp_piok.script
echo " "
echo "Invoking pius piok to update COG coordinates"
echo " "
/ford/thishost/unix/apps_bin/pius piok < temp_piok.script
fi
fi
done
echo " "
echo "pius piok completed"
echo " "
/usr/bin/rm -f temp_piok.script /tmp/move_im_dummy_tmp.file
echo "move_im succesfully completed"
exit

fi

+++++++++++++++++

Thanks for the effort and i will check it out!