Sponsored Content
Top Forums Shell Programming and Scripting Script to tar/rsync/rm multiple folder names Post 302971328 by bakunin on Tuesday 19th of April 2016 04:15:33 AM
Old 04-19-2016
Quote:
Originally Posted by Don Cragun
Please indent your code to show its structure! Adding blank lines (instead of indenting) still hides the fact that[...]
I absolutely, wholeheartedly, fully, completely concur! *)

But probably we can't drive home the fact of just how important indentation is because the script is still in a stage where the structure is very very basic. So, in a last-ditch effort, before i am out of here, here is an excerpt of a real production-level script i use, first without indentation:

Code:
while [ -n "$1" ] ; do
chAttr="${1%%=*}"
chValue="${1#*=}"
shift
case "$chAttr" in
"name") # user name
chRemUser="$chValue";;
"hostname") # host name
(( iRemHostPtr += 1 )) # add new element to array
typeset achRemHost[$iRemHostPtr]="$chValue";;
*) (( iAttr = 1 ))
(( lFoundAttr = 0 ))
while [ $iAttr -le ${#achAttr[*]} -a $lFoundAttr -eq 0 ] ; do
if [ "${achAttr[$iAttr]}" == "$chAttr" ] ; then
# protect values with blanks
if [ "$chValue" == "${chValue% *}" ] ; then
achValue[$iAttr]="$chValue"
else
achValue[$iAttr]="'$chValue'"
fi
(( lFoundAttr = 1 ))
fi
(( iAttr += 1 ))
done
if (( lFoundAttr == 0 )) ; then
if (( lStrictChecking == 1 )) ; then
f_CmdError "Unknown Attribute $chAttr ($chValue) found. Aborting:"
f_die 1
else
f_CmdWarning "Ignoring unknown Attribute $chAttr ($chValue)"
fi
fi
;;
esac
done

You might want to compare that drivel to the original:

Code:
while [ -n "$1" ] ; do
     chAttr="${1%%=*}"
     chValue="${1#*=}"
     shift

     case "$chAttr" in
          "name")                                # user name
               chRemUser="$chValue"
               ;;

          "hostname")                            # host name
               (( iRemHostPtr += 1 ))            # add new element to array
               typeset achRemHost[$iRemHostPtr]="$chValue"
               ;;

          *)
               (( iAttr = 1 ))
               (( lFoundAttr = 0 ))
               while [ $iAttr -le ${#achAttr[*]} -a $lFoundAttr -eq 0 ] ; do
                    if [ "${achAttr[$iAttr]}" == "$chAttr" ] ; then
                                                 # protect values with blanks
                         if [ "$chValue" == "${chValue% *}" ] ; then
                              achValue[$iAttr]="$chValue"
                         else
                              achValue[$iAttr]="'$chValue'"
                         fi
                         (( lFoundAttr = 1 ))
                    fi
                    (( iAttr += 1 ))
               done
               if (( lFoundAttr == 0 )) ; then
                    if (( lStrictChecking == 1 )) ; then
                         f_CmdError "Unknown Attribute $chAttr ($chValue) found. Aborting:"
                         f_die 1
                    else
                         f_CmdWarning "Ignoring unknown Attribute $chAttr ($chValue)"
                    fi
               fi

               ;;

     esac
done

And if this won't let you see the light perhaps nothing will.

I hope this helps.

bakunin
____________________
*) And that i stopped agreeing here was only because i ran out of pleonasms. ;-)
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Copying multiple folders to local machine (don't know folder names)

Hi. I'm trying to copy multiple folders from the remote machine to the local machine. I wrote a batch file to run an ftp window. The problem I am having is that the only command to copy files is mget *, and this copies only files, not folders. For example, ftp ts555 cd ts555/test ' test... (5 Replies)
Discussion started by: leenyburger
5 Replies

2. Shell Programming and Scripting

lvm/tar/rsync backup script feedback/criticism

I have written a shell script to perform backups using tar, rsync and optionally utilise lvm snapshots. The script is not finished but is in a working state and comments/descriptions are poor. I would greatly appreciate any criticism and suggestions of the script to help improve my own learning... (0 Replies)
Discussion started by: jelloir
0 Replies

3. Shell Programming and Scripting

Script to move files with similar names to folder

I have in directory /media/AUDIO/WAVE many .mp3 files with names like: my filename_01of02.mp3 my filename_02of02.mp3 Your File_01of06.mp3 Your File_02of06.mp3 etc.... In the same directory, /media/AUDIO/WAVE, I have many folders with names like 9780743579490 9780743579491 etc.. Inside... (7 Replies)
Discussion started by: glev2005
7 Replies

4. Shell Programming and Scripting

editing names of files in multiple folder

I have 1000's of directories which is named as numbers. Each directory contains multiple files. Each of these directories have a file named "att". I need to rename all the att files by adding the directory name followed by "_" then att for each of the directories. Directories 120 att... (2 Replies)
Discussion started by: Lucky Ali
2 Replies

5. Shell Programming and Scripting

tar command to explore multiple layers of tar and tar.gz files

Hi all, I have a tar file and inside that tar file is a folder with additional tar.gz files. What I want to do is look inside the first tar file and then find the second tar file I'm looking for, look inside that tar.gz file to find a certain directory. I'm encountering issues by trying to... (1 Reply)
Discussion started by: bashnewbee
1 Replies

6. UNIX for Dummies Questions & Answers

Do I need to extract the entire tar file to confirm the tar folder is fine?

I would like to confirm my file.tar is been tar-ed correctly before I remove them. But I have very limited disc space to untar it. Can I just do the listing instead of actual extract it? Can I say confirm folder integrity if the listing is sucessful without problem? tar tvf file1.tar ... (1 Reply)
Discussion started by: vivien_chu
1 Replies

7. Shell Programming and Scripting

Script to move one folder to multiple folder...

Hi All, I have to requirement to write a shell script to move file from one folder (A) to another five folder (B,C,D,E,F) and destination folder should be blank. In not blank just skip. This script will run as a scheduler every 2 minutes. It will check number of files in folder A and move 1 to... (9 Replies)
Discussion started by: peekuabc
9 Replies

8. Shell Programming and Scripting

Bash script for printing folder names and their sizes

Good day, everyone! I'm very new to bash scripting. Our teacher gave us a task to create a script that basically does the same job the 'du' command does, with the difference that 'du' command gives an output in the form of <size> <folder name>and what we need is <folder name> <size>As for... (1 Reply)
Discussion started by: UncleIS
1 Replies

9. Homework & Coursework Questions

Bash script for printing folder names and their sizes

1. The problem statement, all variables and given/known data: The task is to create a script that would reproduce the output of 'du' command, but in a different way: what 'du' does is: <size> <folder name>and what is needed is <folder name> <size>We need to show only 10 folders which are the... (3 Replies)
Discussion started by: UncleIS
3 Replies

10. Shell Programming and Scripting

Checking Multiple File existance in a UNIX folder(Note: File names are all different)

HI Guys, I have some 8 files with different name and extensions. I need to check if they are present in a specific folder or not and also want that script to show me which all are not present. I can write if condition for each file but from a developer perspective , i feel that is not a good... (3 Replies)
Discussion started by: shankarpanda003
3 Replies
All times are GMT -4. The time now is 01:05 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy