Sponsored Content
Full Discussion: Sh Script whats wrong?
Top Forums Shell Programming and Scripting Sh Script whats wrong? Post 302880252 by vbe on Wednesday 18th of December 2013 10:56:48 AM
Old 12-18-2013
Yes scrutinizer I am fussy on the orthodoxy side ... thats because in older times HP-UX was very strict in ksh , what could run on aix 4.3 may not on hpux10... and so I had the habit to be very strict myself and test first on hpux hehe...
Now about our friend who corrected for me ( was and still am very busy ) I took the time to test the script:
modified a bit the script and got:
Code:
n12:/sm/cron/bin/wks/test $ whats_wrong stop
this is line 3
whats_wrong[4]: 0403-057 Syntax error at line 4 : `(' is not expected.


So I looked again at the script and corrected it:
Code:
#!/bin/sh

echo this is line 3
fstop() 
{
        echo "Killing old shoutcast servers in $1"
        #       for oldpid in `ps -A | grep "$1" | grep "sc_serv" | cut -c 0-6`
        #       do
        #               kill -9 $oldpid
        #       done
        #       rm -f $HOME/$1/shoutcast.pid
        read kyb
}


fstart()
{
        servcount=0
        for cfile in `ls $HOME/$1`
        do
                echo -n $cfile
                echo -n " -> "
                #grep ^RelayServer /etc/shoutcast/$cfile
                grep ^RelayServer $HOME/$1/$cfile
                # This is the line where we actually run the shoutcast program!
                #sudo -u nobody /home/shoutcast/sc_serv /home/shoutcast/$cfile > /dev/null &
                $HOME/$1/sc_serv $HOME/$1/$cfile > /dev/null &
                servcount=`expr $servcount + 1`
        done
        #Create the pid file...
        ps -A | grep "$1" | grep "sc_serv" | cut -c 0-6 > $HOME/$1/shoutcast.pid
        #Done now!
        echo "Started $servcount servers in $1."
}


fcreat()
{
        if [[ -d "$1" ]]
        then
                echo "ERROR: STREAM $1 already exists !!"
        else
                mkdir -p $HOME/$1
                cp -f sc_serv $HOME/$1/.
                touch $HOME/$1/sc_serv.cfg
                echo "Creating the CONFIG file $HOME/$1/sc_serv.cfg..."
                echo "Enter MaxUser: "
                read listener
                echo "Enter Password: "
                read pass
                echo "Enter PortBase: "
                read port
                echo "Enter AdminPassword: "
                read apass

                echo "MaxUser=$listener" > $HOME/$1/sc_serv.cfg
                echo "Password=$pass" >> $HOME/$1/sc_serv.cfg
                echo "PortBase=$port" >> $HOME/$1/sc_serv.cfg
                echo "LogFile=sc_serv.log" >> $HOME/$1/sc_serv.cfg
                echo "RealTime=1" >> $HOME/$1/sc_serv.cfg
                echo "ScreenLog=1" >> $HOME/$1/sc_serv.cfg
                echo "ShowLastSongs=10" >> $HOME/$1/sc_serv.cfg
                echo "W3CEnable=Yes" >> $HOME/$1/sc_serv.cfg
                echo "W3CLog=sc_w3c.log" >> $HOME/$1/sc_serv.cfg
                echo "SrcIP=ANY" >> $HOME/$1/sc_serv.cfg
                echo "DestIP=ANY" >> $HOME/$1/sc_serv.cfg
                echo "Yport=80" >> $HOME/$1/sc_serv.cfg
                echo "NameLookups=0" >> $HOME/$1/sc_serv.cfg
                echo "AdminPassword=$apass" >> $HOME/$1/sc_serv.cfg
                echo "AutoDumpUsers=0" >> $HOME/$1/sc_serv.cfg
                echo "AutoDumpSourceTime=30" >> $HOME/$1/sc_serv.cfg
                echo "TitleFormat=%s" >> $HOME/$1/sc_serv.cfg
                echo "PublicServer=default" >> $HOME/$1/sc_serv.cfg
                echo "AllowRelay=Yes" >> $HOME/$1/sc_serv.cfg
                echo "AllowPublicRelay=Yes" >> $HOME/$1/sc_serv.cfg
                echo "MetaInterval=32768" >> $HOME/$1/sc_serv.cfg
        fi
}


case $1 in
        'start')
                if [[ ! -e $HOME/$2/shoutcast.pid ]]
                then
                        fstart $2
                        if [[ -e $HOME/$2/shoutcast.pid ]]
                        then
                                echo "Shoutcast $2 Startup...... [SUCCESS]"
                        fi
                else
                        echo "Shoutcast $2 Startup...... [FAILED]"
                fi
                ;;
        'restart')
                fstop $2
                sleep 4
                fstart $2
                if [[ -e $HOME/$2/shoutcast.pid ]]
                then
                        echo "Shoutcast $2 Startup...... [SUCCESS]"
                fi
                ;;
        'stop')
                if [[ -e $HOME/$2/shoutcast.pid ]]
                then
                        fstop $2
                        echo "Shoutcast $2 shutdown...... [SUCCESS]"
                else
                        echo "There are no registered shoutcast servers running right now in $2. Attempt
ing to kill anyways."
                        fstop $2
                fi
                ;;
        'creat')
                fcreat $2
                if [[ -d "$2" ]]
                then
                        echo "Shoutcast $2 folder created...... [SUCCESS]"
                else
                        echo "Shoutcast $2 folder created...... [FAILED]"
                fi
                ;;
        *)
                echo "Usage: sh ./shoutcast.sh (start|stop|restart|creat) (FOLDER_NAME)"
                ;;
esac

I have no means of testing but should work now...
IMHO it is NEVER a good idea to give to functions the names of argument you expect...
This is what I get now:
Code:
n12:/sm/cron/bin/wks/test $ whats_wrong stop
this is line 3
There are no registered shoutcast servers running right now in . Attempting to kill anyways.
Killing old shoutcast servers in

Dont forget to remove my comments in ftop function and the read kyb...

Last edited by vbe; 12-18-2013 at 12:18 PM.. Reason: code got mangled had to start all again...
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Whats wrong with this 5 line script!

Hi #!/bin/sh user=$1 if " -eq 0 ] echo "No" else echo "Yes" fi I'm not quite sure whats wrong with this but I know its something silly. Any ideas? Thanks (9 Replies)
Discussion started by: c19h28O2
9 Replies

2. Shell Programming and Scripting

Whats wrong with this script?

Hi all, #!/bin/ksh BIN=/interface/Gunner age=$1 directory="$2" && directory=. cd "$directory" || exit 1 from=`$BIN/today -$age` cd $BIN for i in `cat filestoarchive.txt`;do cd $i find . -mtime 14 | grep -v '.tar$' | $BIN/dttmfilter | awk '$1<="'$from'"{ print;};' | \ done (2 Replies)
Discussion started by: kayarsenal
2 Replies

3. UNIX for Advanced & Expert Users

Whats wrong in this Script ???

PATH="/clocal/mqbrkrs/user/mqsiadm/sanjay" MAIL_RECIPIENTS="xyz@abc.com" Subject="File accessed in last minutes:" find $PATH -type f -amin -1 > temp.txt.$$ cat temp.txt.$$ | \ while read line do fuser -uV $line >> tempmail.txt done cat "$tempmail.txt" | mailx -s "$Subject"... (4 Replies)
Discussion started by: varungupta
4 Replies

4. Shell Programming and Scripting

tell me whats wrong in this?

#! /bin/bash head -5 $1 echo "remove $1 ?" read answer if then echo invalid answer elif rm $1 echo "$1 is deleted" elif then echo file is not deleted else echo "invalid answer" fi What i really want this to do is to ask to delete the file or not..it says something wrong... (1 Reply)
Discussion started by: nadman123
1 Replies

5. Shell Programming and Scripting

tell me whats wrong with this

#! /bin/bash USAGE=" | ] if then echo "$USAGE" exit 1 fi while getopts lb: OPTION do case $(OPTION)in a) echo Hi there! exit 2;; b) echo hello o) OARG=$OPTARG;; \?)echo "$USAGE" ;; exit 2;; esac done shift `expr... (1 Reply)
Discussion started by: nadman123
1 Replies

6. UNIX for Dummies Questions & Answers

Whats wrong in the script?

if then if then echo "fst argument is $1 " else if then "fst argument is $1" fi fi fi Can anyone tell me. My requirement is tht pass a string .. Check whether it contains "-". If yes then check if it... (1 Reply)
Discussion started by: nehagupta2008
1 Replies

7. Shell Programming and Scripting

Whats wrong with my script?

I am trying to find a value within a properties file and declare it into a variable. Script below. I want the "memSize" to be the branch from the properties file. Right now it always tells me "Not found" What am I doing wrong? #!/bin/sh memsize =''; memSize=`sed '/^\#/d'... (8 Replies)
Discussion started by: vsekvsek
8 Replies

8. OS X (Apple)

Whats wrong with this shell script!!!!!

hi guys can you tell me if anything is wrong with this script, seems reasonable to me but somehow never works. Script redacted for being too explicit (2 Replies)
Discussion started by: Freddo
2 Replies

9. Homework & Coursework Questions

Whats wrong with the following

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: ls -ld htdocs drwxr-x--- 3 root root 8192 2006-11-19 10:41 htdocs How would a host administrator... (1 Reply)
Discussion started by: Larry_1
1 Replies

10. UNIX for Dummies Questions & Answers

Whats wrong with this if-else

hi whats wrong in below?? CHECK=M10; if ; then echo "hello hi"; else echo "how are u hello hi"; fi I am getting error as ./test.sh: line 2: ' ./test.sh: line 2: M10: command not found ./test.sh: line 2: M10: command not found ./test.sh: line 2: M10: command not found (8 Replies)
Discussion started by: skyineyes
8 Replies
All times are GMT -4. The time now is 01:03 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy