I am initiating a shell script that goes out to various UNIX hosts to
get system info. I want to run the shell as bourne shell for the sake
of uniformity.
I initiate a shell script#1 on the local host. Script#1 will do an rsh
to the remote host, the remote host will mount itself to the local host
and then call another script (script#2) that resides on the local host.
The default ROOT login for the remote host is /bin/csh. The problem is
that when i login to the remote host it will not read the script that
has been written in bourne shell. At the beginning of script#1 and
script#2 i use the "#! /bin/sh" syntax.
The remote host will not read the if [ ! -d $MOUNT_PT ]
then
/bin/mkdir $MOUNT_PT
fi
The errors that i get are as follows:
Remote: csns2
Missing ].
then: Command not found.
mkdir: /admin_mnt: File exists
fi: Command not found.
MOUNT_PT=/admin_mnt: Command not found.
export: Command not found.
HOST=csns2: Command not found.
export: Command not found.
I would appreciate any help that I could get. I did read the
comp.unix.shell FAQ and did see some differences btw. csh and sh but
could not seem to get an answer to my problem.
Thanks in advance.
rolf
SCRIPT #1
#! /bin/sh
...
if [ "$OS" = SunOS ] && [ "$OSVER" = 4 ]
then
rsh $HOST "
echo "Remote: $HOST"
if [ ! -d $MOUNT_PT ]
then
/bin/mkdir $MOUNT_PT
fi
/usr/etc/mount -t nfs nordic:$MOUNT_PATH $MOUNT_PT
cd $MOUNT_PT
# (setenv MOUNT_PT /admin_mnt;setenv HOST
$HOST;$MOUNT_PT/scripts/sunos_info.sh)
(MOUNT_PT=/admin_mnt;export MOUNT_PT;HOST=$HOST;export
HOST;$MOUNT_PT/scripts/sunos_info.sh)
cd /
/usr/etc/umount $MOUNT_PT"
fi
...
SCRIPT #2 (sunos_info.sh)
#! /sbin/sh -x
#######################################################
# FUNCTIONS
#######################################################
# disk space function for SUNOS
df_report () {
if [ ! -d $MOUNT_PT/data/hosts/$HOST ]
then
mkdir $MOUNT_PT/data/hosts/$HOST
fi
/bin/df -t 4.2 | grep -v : >
$MOUNT_PT/data/hosts/$HOST/disk_space
}
# END disk_space
#######################################################
df_report