Help with bash script.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help with bash script.
# 15  
Old 02-16-2010
Now were cookin with gasoline.. I will take time to see what you did and enter in the empty variable.. this is what I needed a miiiiiiiiiilllllllllllllllllion thank yous

---------- Post updated at 01:16 PM ---------- Previous update was at 10:04 AM ----------

Ok making some progress here line by line.. IM stuck at the copying options
i got the basic copy cmd to work but need help to detect duplicate??
heres what i got so far

Code:
copy_mp3() { 
    cd /home/Fedora11/MP3/
    ls -v *.mp3
    
    echo -e "Please Select Your Song To Copy --> \c"
    read DONKEY
    cp $DONKEY /home/Fedora11/MP3_1/ 
}

# 16  
Old 02-16-2010
Quote:
Originally Posted by m2dmhot
Now were cookin with gasoline.. I will take time to see what you did and enter in the empty variable.. this is what I needed a miiiiiiiiiilllllllllllllllllion thank yous

---------- Post updated at 01:16 PM ---------- Previous update was at 10:04 AM ----------

Ok making some progress here line by line.. IM stuck at the copying options
i got the basic copy cmd to work but need help to detect duplicate??

Use the test command:
Code:
if [ -f "$destfile" ] then ...

Quote:
heres what i got so far

Code:
copy_mp3() { 
    cd /home/Fedora11/MP3/


Why are you hard-coding the directory name when you have it in a variable?

And always check that you changed directory successfully:
Code:
cd "$AUDIOPATH" || exit 1

Quote:
Code:
    ls -v *.mp3
    
    echo -e "Please Select Your Song To Copy --> \c"
    read DONKEY
    cp $DONKEY /home/Fedora11/MP3_1/ 
}


That will fail if $DONKEY contains whitespace. Always quote variable references:
Code:
cp "$DONKEY" "$PLAYLIST/MP3_1/"

# 17  
Old 02-16-2010
Im not using the old one. I used the one you created. How will it knwo the path if im not assigning it.. I dont know proper procedure for scripting. I just add bits and pieces trying to make it work..
Code:
## Functions for each task
create_playlist() { 
   cd /home/Fedora11
   echo -e "Enter Name Of Playlist --> \c"
   read PNAME
   touch $PNAME.m3u
   
   echo -e
   ls -v *.mp3
   echo -e
}

edit_playlist() { 
  : put appropriate commands here
}

delete_playlist() { 
  : put appropriate commands here
}

generate_playlist() { 
  : put appropriate commands here
}

play_mp3() { 
    cd /home/Fedora11/MP3/
    ls -v *.mp3
    echo -e

    echo -e "Please Select Your Song --> \c"
    IFS= read DOG
    mplayer "/home/Fedora11/MP3/$DOG" 
}

copy_mp3() { 
    cd /home/Fedora11/MP3/
    ls -v *.mp3
    
    echo -e "Please Select Your Song To Copy --> \c"
    read DONKEY
    cp "$DONKEY"  "/home/Fedora11/MP3_1/" 
}

delete_mp3() { 
    cd /home/Fedora11/MP3/
    ls -v *.mp3
    echo -e

    echo -e "Please Select Which Song To Delete --> \c"
    read SONG
    rm $SONG 
}

## Print menu and execute user's selection
while  :
do
  printf %s '

Mp3 Playlist Program:
================================
C)reate Mp3 Playlist
E)dit Mp3 Playlists
D)isplay Mp3 Playlists
G)enerate Mp3 Database
P)lay Mp3
1)Copy Mp3
2)Remove Mp3
Q)uit
Enter your selection ==> '

  read ANS

  case "$ANS" in
    c|C ) create_playlist ;;
    e|E ) edit_playlist ;;
    d|D ) delete_playlist ;;
    g|G ) generate_playlist ;;
    p|P ) play_mp3 ;;
    1)    copy_mp3 ;;
    2)    delete_mp3 ;;
    q|Q ) exit ;;
  esac
done

now im still unsure where your putting the
Code:
if [ -f "$destfile" ] then ...

or how your using like.. I appoligize but im not as advanced as you think.
# 18  
Old 02-16-2010
Quote:
Originally Posted by m2dmhot
Im not using the old one. I used the one you created. How will it knwo the path if im not assigning it..

I didn't write a complete script.

You should assign variables at the beginning of your script. That way, if you need to do the same thing in another directory you can just change one instance.
# 19  
Old 02-16-2010
Geez i feel so stupid.. ok i added that path. But not sure if i have to add cd in front of all the required paths??
here is what i got with newest but giving me error on line 89
Code:
#!/bin/bash

PLAYLIST='/home/woot'

AUDIOPATH=$PLAYLIST/MP3

## Functions for each task

create_playlist() { 

   cd "$AUDIOPATH"

   echo -e "Enter Name Of Playlist --> \c"

   read PNAME

   touch $PNAME.m3u

   

   echo -e

   ls -v *.mp3

   echo -e

}



edit_playlist() { 

  : put appropriate commands here

}



delete_playlist() { 

  : put appropriate commands here

}



generate_playlist() { 

  : put appropriate commands here

}



play_mp3() { 

    cd "$AUDIOPATH"

    ls -v *.mp3

    echo -e



    echo -e "Please Select Your Song --> \c"

    IFS= read DOG

    mplayer "$AUDIOPATH"/$DOG" 

}



copy_mp3() { 

    cd "$AUDIOPATH

    ls -v *.mp3 >> "$AUDIOPATH"/tempdir.lst # Create Temp file with Directory listing



    echo -e "Please Select Your Song To Copy --> \c"

    read DONKEY



    cat '$AUDIOPATH"/tempdir.lst | while read line; do #Read each line of the file and store the line to $line variable

        if $line == $DONKEY then

            echo "File Already Exist, Copy Aborted!"

        else

            cp "$DONKEY" "$PLAYLIST_MP3_1/"

       

    rm "$AUDIOPATH"/tempdir.lst # Delete the temporary file containing the directory listing

}



delete_mp3() { 

    cd "$AUDIOPATH"

    ls -v *.mp3

    echo -e



    echo -e "Please Select Which Song To Delete --> \c"

    read SONG

    rm $SONG
    cd "$AUDIOPATH" || exit 1 

}



## Print menu and execute user's selection

while  :

do

  printf %s '



Mp3 Playlist Program:

================================

C)reate Mp3 Playlist

E)dit Mp3 Playlists

D)isplay Mp3 Playlists

G)enerate Mp3 Database

P)lay Mp3

1)Copy Mp3

2)Remove Mp3

Q)uit

Enter your selection ==> '



  read ANS



  case "$ANS" in

    c|C ) create_playlist ;;

    e|E ) edit_playlist ;;

    d|D ) delete_playlist ;;

    g|G ) generate_playlist ;;

    p|P ) play_mp3 ;;

    1)    copy_mp3 ;;

    2)    delete_mp3 ;;

    q|Q ) exit ;;

  esac

done

'/12345_2_woot.txt: line 89: syntax error near unexpected token `in
'/12345_2_woot.txt: line 89: ` case "$ANS" in

Last edited by m2dmhot; 02-16-2010 at 03:45 PM..
# 20  
Old 02-16-2010
Quote:
Originally Posted by m2dmhot
Geez i feel so stupid.. ok i added that path. But not sure if i have to add cd in front of all the required paths??

If you want to cd into the directory, you need cd; if you don't, you don't.
Quote:
here is what i got with newest but giving me error on line 89
Code:
#!/bin/bash

PLAYLIST='/home/woot'


The quotes are not necessary.
Code:
PLAYLIST=/home/woot

Quote:
Code:
    mplayer "$AUDIOPATH"/$DOG"


You have unmatched quotes.
# 21  
Old 02-17-2010
ok did some work gettin caught up on line 118

Code:
1:#!/bin/bash
3:PLAYLIST=/home/Fedora11
5:AUDIOPATH=$PLAYLIST/MP3
7:## Functions for each task
9:create_playlist() { 
11:   cd "$AUDIOPATH"
12:   echo -e "Enter Name Of Playlist --> \c"
13:   read PNAME
14:   touch $PNAME.m3u
16:   echo -e
17:   ls -v *.mp3
18:   echo -e
19:}
23:edit_playlist() { 
24:   : put appropriate commands here
25:}
28:delete_playlist() { 
29:  : put appropriate commands here
30:}
33:generate_playlist() { 
34:  : put appropriate commands here
35:}
39:play_mp3() { 
41:    cd "$AUDIOPATH"
42:    ls -v *.mp3
43:    echo -e
44:    echo -e "Please Select Your Song --> \c"
45:    IFS= read DOG
46:    mplayer "$AUDIOPATH"/$DOG 
48:}
51:copy_mp3() { 
53:    cd "$AUDIOPATH"
54:    ls -v *.mp3 >> "$AUDIOPATH"/tempdir.lst # Create Temp file with Directory listing
56:    echo -e "Please Select Your Song To Copy --> \c"
57:    read DONKEY
60:    cat "$AUDIOPATH"/tempdir.lst | while read line; do #Read each line of the file and store the line to $line variable
61:                                     ...
62:                                    done < "$AUDIOPATH"/temp.lst
63:        if [[ $line == $DONKEY ]]; then
64:            echo "File Already Exist, Copy Aborted!"
65:        else
66:            cp $DONKEY "$PLAYLIST"/MP3_1
67:       fi
68:     
69:     rm "$AUDIOPATH"/tempdir.lst # Delete the temporary file containing the directory listing
71:}
74:delete_mp3() { 
76:    cd "$AUDIOPATH"
77:    ls -v *.mp3
78:    echo -e
80:    echo -e "Please Select Which Song To Delete --> \c"
81:    read SONG
82:    rm $SONG
83:    cd "$AUDIOPATH" || exit 1 
85:}
87:## Print menu and execute user's selection
89:while  :
90:do
91:  printf %s '
94:Mp3 Playlist Program:
95:================================
96:C)reate Mp3 Playlist
97:E)dit Mp3 Playlists
98:D)isplay Mp3 Playlists
99:G)enerate Mp3 Database
100:P)lay Mp3
101:1)Copy Mp3
102:2)Remove Mp3
103:Q)uit
104:Enter your selection ==> '
106:  read ANS
107:debug: ANS= "$ANS"
108:...
109: case "$ANS" in
110:    "c" | "C" ) create_playlist ;;
111:    "e" | "E" ) edit_playlist ;;
112:    "d" | "D" ) delete_playlist ;;
113:    "g" | "G" ) generate_playlist ;;
114:    "p" | "P" ) play_mp3 ;;
115:    "o" | "O" ) copy_mp3 ;;
116:    "l" | "L" ) delete_mp3 ;;
117:    "q "| "Q" ) exit ;;
118:...  
119:esac
120:done

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

In Bash shell - the ps -ef shows only the /bin/bash but the script name is not displayed

In Bash shell - the ps -ef shows only the /bin/bash but the script name is not displayed ? Is there any way to get the script names for the process command ? --- Post updated at 08:39 AM --- in KSH (Korn Shell), my command output shows the script names but when run in the Bash Shell... (3 Replies)
Discussion started by: i4ismail
3 Replies

2. Shell Programming and Scripting

How to block first bash script until second bash script script launches web server/site?

I'm new to utilities like socat and netcat and I'm not clear if they will do what I need. I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes. I'm using Cygwin bash on Windows 10. My... (3 Replies)
Discussion started by: siegfried
3 Replies

3. Shell Programming and Scripting

Different behavior between bash shell and bash script for cmd

So I'm trying to pass certain json elements as env vars and use them later on in a script. Sample json: JSON='{ "Element1": "file-123456", "Element2": "Name, of, company written in, a very weird way", "Element3": "path/to/some/file.txt", }' (part of the) script: for s... (5 Replies)
Discussion started by: da1
5 Replies

4. Shell Programming and Scripting

Make a password protected bash script resist/refuse “bash -x” when the password is given

I want to give my long scripts to customer. The customer must not be able to read the scripts even if he has the password. The following command locks and unlocks the script but the set +x is simply ignored. The code: read -p 'Script: ' S && C=$S.crypt H='eval "$((dd if=$0 bs=1 skip=//|gpg... (7 Replies)
Discussion started by: frad
7 Replies

5. UNIX for Dummies Questions & Answers

Im new to bash scriping and i found this expression on a bash script what does this mean.

# check host value regex='^(||1|2|25)(\.(||1|2|25)){3}$' if ')" != "" ]; then if ]; then echo host $host not found exit 4 fi elif ]; then echo $host is an invalid host address exit 5 fi espeacailly the top regex part? ---------- Post updated at 06:58 PM ---------- Previous update was... (1 Reply)
Discussion started by: kevin298
1 Replies

6. Shell Programming and Scripting

Run bash script within a bash script

Hi everybody, Lets say, I have two bash scripts named down.sh and up.sh located in two different folders named ~/home/a/ and ~/home/b/ Now I want to write another bash script, located in ~/home/ which runs these other two scripts, so that I only have to execute this one comprehensive script... (1 Reply)
Discussion started by: NBurkhard
1 Replies

7. Shell Programming and Scripting

Bash Script: modify bash

Hey guys, i'm having trouble complete one of my bash scripts I'm hoping to --- 1. Modify bash so that then the user types "ls" the command that is executed is "ls -al" 2. Modify the point of entry in bash when the user accesses it, moving the initial location to /var I've somewhat done #2,... (9 Replies)
Discussion started by: LibRid
9 Replies

8. Shell Programming and Scripting

how to make your bash script run on a machine with csh and bash

hi, i have a script that runs on bash and would like to run it on a machine that has csh and bash. the default setting on that machine is csh. i dont want to change my code to run it with a csh shell. is there any way i can run the script (written in bash) on this machine? in other words is there... (3 Replies)
Discussion started by: npatwardhan
3 Replies

9. Shell Programming and Scripting

passing variable from bash to perl from bash script

Hi All, I need to pass a variable to perl script from bash script, where in perl i am using if condition. Here is the cmd what i am using in perl FROM_DATE="06/05/2008" TO_DATE="07/05/2008" "perl -ne ' print if ( $_ >="$FROM_DATE" && $_ <= "$TO_DATE" ) ' filename" filename has... (10 Replies)
Discussion started by: arsidh
10 Replies

10. Shell Programming and Scripting

Why generate "ash and bash" different output for same bash script?

Hi, For my bash script, terminal with bash is generate an OK output and program works right. already, terminal with ash have "line 48: syntax error: Bad substitution" output and program don't work. :confused: (0 Replies)
Discussion started by: s. murat
0 Replies
Login or Register to Ask a Question