Help me find 5 mistakes and than solution to thoes mistakes!

emarti1 emarti1 at sandia.gov
Tue Aug 17 21:34:48 UTC 2004


It's really not that hard to get help. 
Ask someone at school CQU. Not here.
Your not anonymous here.
http://www.google.com/search?hl=en&ie=UTF-8&q=%22Damien+Clark%22+bash&btnG=Google+Search



On Sun, 2004-08-15 at 18:01, Mr. Oberoi wrote:
> 1:#!/bin/bash
> 
> 
> 2:# Merge symlink files
> 3:# Author: Damien Clark
> 4:# Date: 8/Oct/2000
> 5:# Purpose:
> 6:#
> 7:# Merge files from multiple directories into one directory by
> linking
> 8:# This script will create links to files from all of the filename
> arguments
> 9:# provided on commandline into the current directory, or from the
> filename
> 10:# arguments provided on stdin if no filenames provided on command
> line.
> 11:#
> 12:# The script will check the following properties of the file,
> before linking it:
> 13:#
> 14:# : make sure that each filename provided is actually a regular
> file (not a
> 15:# directory or symlink or device file)
> 16:# : make sure that each file is readable
> 17:# : make sure that the effective user running the script owns the
> file,
> 18:# or the effective group is the group owner ofthe file
> 19:#
> 20:# The script will also work properly on filenames with spaces. For
> example:
> 21:#
> 22:# /home/clarkd/My Resume.doc
> 23:#
> 24:# Usage: $0 [-s] [-c] [ ...]
> 25:#
> 26:# -c option -> continue processing even if an error is detected on
> a file.
> 27:# Without this option, the script will stop if an error is
> 28:# detected with a file.
> 29:#
> 30:# -s option -> create symbolic links instead of hard links (does
> not check
> 31:# if on same filesystem)
> 32:#
> 33:# If the script is provided file names as standard input, it can be
> expressed
> 34:# as shown in the example below:
> 35:#
> 36:# find ~ -type f -print| generatelinks.sh -s
> 37:#
> 38:# The command above will create symbolic links to the files found
> within the
> 39:# user's home directory, if the file properties match as above.
> 40:#
> 41:# If the script is run with filenames provided as command line
> argument, as
> 42:# shown in the example below:
> 43:#
> 44:# generatelinks.sh /home/clarkd/*.doc /home/clarkd/documents/*.doc
> 45:#
> 46:# without the ! -c option, then the script will ask to confirm
> whether to continue
> 47:# not to continue, or to continue for all.
> 
> 
> 48:#Process each file and link it if it is okay.
> 49:processfile
> 50:{
> 51: lnopts="$1"
> 52: filename="$2"
> 
> 
> 53: #file must be "normal file"
> 54: if [ ! -f "$filename" ]
> 55: then
> 56: echo Not a normal file: $filename
> 57: retval=1
> 58: #must have "read perms"
> 59: elif [ ! -r "$filename" ]
> 60: then
> 61: echo "No read permissions: $filename"
> 62: retval=1
> 63: #user must either effective owner the file or effective group
> owner of the file
> 64: elif [ ! -O "$filename" -o ! -G "$filename" ]
> 65: then
> 66: echo "No effective ownership or effective group ownership of file:
> $filename"
> 67: retval=1
> 68: #Otherwise all is well, link the file to current directory using
> existing name
> 69: else
> 70: ln $lnopts $filename
> 71: retval=$?
> 72: fi
> 
> 
> 73: #Return the exit status code > 0 if a problem occured
> 74: return $retval
> 75:}
> 
> 
> 76:# Initialise variables
> 77:cont='N'
> 78:lnopts=''
> 
> 
> 79:# Process switches
> 80:while test "$1" = '-c' '-o' "$1" = '-s'
> 81:do
> 82: if [ "$1" = '-c' ]
> 83: then
> 84: cont='Y'
> 85: shift
> 86: fi
> 87: if [ "$1" = '-s' ]
> 88: then
> 89: lnopts='-s'
> 90: shift
> 91: fi
> 92:done
> 
> 
> 93:echo "Commencing generation of files
> 
> 
> 94:if [$# -lt 1]
> 
> 
> 95: while read filename
> 96: do
> 97: processfile "$lnopts" "$filename"
> 98: result=$?
> 
> 
> 99: test $result -ne 0 -a "$cont" != 'Y' -a "$cont" != 'y' || exit 1
> 100: done
> 
> 
> 101:else
> 
> 
> 102: for filename in $*
> 103: do
> 104: processfile "$lnopts" "$filename"
> 105: result=$?
> 
> 
> 106: if [ $result -ne 0 -a "$cont" != 'Y' ]
> 107: then
> 108: echo -n "Error occurred. Continue (y/n/a)? "
> 109: read $cont
> 
> 
> 110: test "$cont" = 'n' -o "$cont" = 'N' && exit 1
> 111: [ "$cont" = 'a' || "$cont" = 'A' ] && cont='Y'
> 112: fi
> 113: done
> 
> 
> 114:fi
> 
> 
> 115:echo "All files processed"
> 
> 
> 
> Hints/Tips
> There is only one mistake per line.
> ALWAYS include the line number, the description of the problem and
> your solution.
> 
> 
> 
> 
> ______________________________________________________________________
> Do you Yahoo!?
> Y! Messenger - Communicate in real time. Download now.
> 
> ______________________________________________________________________
> -- 
> fedora-list mailing list
> fedora-list at redhat.com
> To unsubscribe: http://www.redhat.com/mailman/listinfo/fedora-list






More information about the fedora-list mailing list