Springe zum Hauptinhalt

Bourne
next up previous contents
Next: Varianten des Sieb-Filters Up: Beispiele für Shell-Programmierung Previous: Kopieren von Teilbäumen im

Selektives Kopieren

  • Variante 1 (selcopy1)
    #!/bin/sh
    #
    # Selektives Kopieren (Version 1)
    #
    # Aufruf: selcopy1 <quellverz> <zielverz>
    #
    for i in `ls $1/*`
    do
        echo "$i kopieren?"
        read antwort
        if [ "$antwort" = 'j' ]
        then
            cp $1/$i $2
            echo "File $i kopiert"
        else
            echo "File nicht kopiert"
        fi
    done
    
  • Variante 2 (selcopy2)
    #!/bin/sh
    #
    # Selektives Kopieren (Version 2)
    #
    # selcopy <quellverz> <zielverz>
    #
    if [ -d $1 ]
    then
        if [ -d $2 ]
        then
            for i in `ls $1/*`
            do
                echo "$i kopieren?"
                read antwort
                if [ "$antwort" = 'j' ]
                then
                    cp $1/$i $2
                    echo "File $i kopiert"
                else
                    echo "File nicht kopiert"
                fi
            done
        else
            echo "$2 ist kein Verzeichnis"
        fi
    else
        echo "$1 ist kein Verzeichnis"
    fi
    
  • Variante 3 (selcopy3)
    #!/bin/sh
    #
    # Selektives Kopieren (Version 3)
    #
    # selcopy <quellverz> <zielverz>
    #
    if [ $# -ne 2 ]
    then
        echo "usage: selcopy_3 <quellverz> <zielverz>"
        exit
    fi
    if [ -d $1 ]
    then
        if [ -d $2 ]
        then
            cd $1
            for i in `ls $1`
            do
                echo "$i kopieren?"
                read antwort
                if [ "$antwort" = 'j' ]
                then
                    if cp $1/$i $2
                    then
                        echo "File $i kopiert"
                    fi
                else
                    echo "File nicht kopiert"
                fi
            done
        else
            echo "$2 ist kein Verzeichnis"
        fi
    else
        echo "$1 ist kein Verzeichnis"
    fi