View Single Post
Posts: 840 | Thanked: 823 times | Joined on Nov 2009
#84
As far as I know (somebody correct me if I'm wrong) the original bourne shell does not have arrays; except one which can be changed with the "set" command. this array initially stores the command line arguments.

You get the array values with $1 $2 etc, and the size with $#
I will rewrite GameboyRMH's script for the original bourne shell (/bin/sh) and post it here then he can make the necessary changes.

I hope you don't mind GameboyRMH.

Edit: ok, I changed some of it. There are probably some syntax differences I didn't spot but see if it works with this and tell me where it complains

Code:
#! /bin/sh
#arguments: servername serverip share username password mountpoint
#username, password and mountpoint are optional arguments
if [ $# -lt 3 ] ; then
    #Go into "wizard mode" if there are no arguments
    echo -e "Not enough arguments passed - running wizard"
    echo -e "Enter the server name:"
    read servername
    echo -e "Enter the server IP"
    read serverip
    echo -e "Enter the share name or path"
    read sharename
    echo -e "Enter a username, or leave blank for anonymous"
    read username
    username_orig=$username
    if [ "${username}" != "" ]; then
        echo -e "Enter a password"
        read password
    fi
    echo -e "Enter a mount point, or leave blank for automatic"
    read mountpoint
fi
#if arguments were passed from the command line, use them:
if [ $# -gt 2 ]; then
    servername=$1
    serverip=$2
    sharename=$3
    username=$4
    username_orig=$username
    password=$5
    mountpoint=$6
fi
#set default mountpoint if the user didn't enter one
if [ "${mountpoint}" = "" ]; then
    mountpoint="/media/Remote_Filesystems/$servername@$sharename"
    #make sure the Remote_Filesystems directory exists
    mountparentdir="/media/Remote_Filesystems"
    if [ -d $mountparentdir ]; then
        echo -e "$mountparentdir found."
    else 
        echo -e "Creating $mountparentdir"
        mkdir $mountparentdir
    fi
fi
#requote variables to escape special characters
servername=$(printf '%q' "$servername")
serverip=$(printf '%q' "$serverip")
sharename=$(printf '%q' "$sharename")
username=$(printf '%q' "$username")
password=$(printf '%q' "$password")
mountpoint=$(printf '%q' "$mountpoint")
#check for mountpoint and create it if it doesn't exist
if [ -d $mountpoint ]; then
    echo -e "Mount point already exists - will attempt to use."
else 
    echo -e "Creating mountpoint $mountpoint"
    mkdir $mountpoint
fi 
echo -e "Attempting to mount //$servername/$sharename at $mountpoint"
#Run the mount command
if [ "${username_orig}" = "" ]; then
mount -t cifs //$servername/$sharename $mountpoint -o user=$username pass=$password ip=$serverip
else
mount -t cifs //$servername/$sharename $mountpoint -o ip=$serverip
fi
#chown mountpoint to user
chown -R user $mountpoint
echo -e "To unmount this share, run umount $mountpoint as root"

Last edited by Cue; 2010-01-15 at 14:27.
 

The Following 3 Users Say Thank You to Cue For This Useful Post: