Naubaddi
Anmeldungsdatum: 28. Oktober 2009
Beiträge: Zähle...
|
Hi, bisher hat es recht gut funktioniert mit dem Rechnen in einem Skript mit einer der 4 Versionen: let zahl=$zahl+1 zahl=$ zahl=expr $zahl + 1 zahl=zahl+1
der einzige Unterschied zu andern Skripten bei denen es funktioniert ist diesmal wird in einer find-Schleife gezählt daher vermute ich hier das Problem.
Bei echo $zahl vor done ist alles i.O, bei echo $zahl nach done ist der Wert 0. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | zahl=0
find "$start" $fpara $von | while read i ; do # die gewünschten Dateien suchen
zahl=`expr $zahl + 1`
quelle=$(dirname "$i") # der Pfad der Datei
datei=$(basename "$i") # der Name der Datei
name=${datei%.*} # nur der Name
ziel=${start%/*}"/$start_o.$nach"${quelle##*$start_o} # der Pfad für die konvertierte Datei
echo "$i" # die normale Datei
echo "$ziel/${datei%.*}.$nach" # die veränderte Datei
mkdir -p "$ziel" # den Ordner für die neuen Dateien erstellen
convert $para "$i" "$ziel/${datei%.*}.$nach" # die Datei verändern
echo "-------------------------------------------------------------------------------"
echo $zahl
done # Endo von find $start
echo $zahl
|
Grüßle, Naubaddi
|
Mooi
Anmeldungsdatum: 15. August 2014
Beiträge: 187
|
Alle Variablen in Deiner Schleife bleiben lokal, wenn Du die Schleife nicht umformulierst:
| zahl=0
while read i ; do
...
done < <( find "$start" $fpara $von ) # die gewünschten Dateien suchen
echo $zahl
|
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17548
Wohnort: Berlin
|
Mooi schrieb: Alle Variablen in Deiner Schleife bleiben lokal, wenn Du die Schleife nicht umformulierst:
| zahl=0
while read i ; do
...
done < <( find "$start" $fpara $von ) # die gewünschten Dateien suchen
echo $zahl
|
Bist Du Dir sicher? Wie hast Du das geprüft?
| for i in a b c; do ((k+=1)); echo $k; done; echo $k
|
Bei mir ist k auch nach dem done noch 3. Artithmetik ist am einfachsten mit zwei runden Klammern zu realisieren, wobei a=a+b üblicherweise zu a+=b abgekürzt wird.
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11176
Wohnort: München
|
user_unknown schrieb: | for i in a b c; do ((k+=1)); echo $k; done; echo $k
|
Bei mir ist k auch nach dem done noch 3.
Das repliziert die Problemstellung nicht - das analogon wäre eher sowas:
| printf "%s\n" a b c | while read -r i
do
((k+=1))
echo $k
done
echo Ergebnis: $k
|
Alles rechts von der Pipe (also in dem Fall die while-Schleife) wird in einer eigenen Subshell ausgeführt, daher ist $k am Ende außerhalb der Subshell ohne Wert.
|
Mooi
Anmeldungsdatum: 15. August 2014
Beiträge: 187
|
seahawk1986 War schneller. ☺ ~> k=0 ; while read i ; do ((k++)) ; echo $i $k ; done < <( printf %s\\n a b c ) ; echo $k
a 1
b 2
c 3
3
~>
|
Naubaddi
(Themenstarter)
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 744
|
Hi, Mooi schrieb: ...Alle Variablen in Deiner Schleife bleiben lokal..
👍 das bestätigt meine Vermutung, werde morgen die Schleife umbauen und berichten. Besten Dank schon mal für den Schubser in die richtige Richtung 😎 👍 ! *edit, man was geht das hier schnell mit den Antworten, so schnell kann ich nicht antworten! Danke Euch beiden 😎 👍 !!!
*edit, Euch 3!!! Grüßle, Naubaddi
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17548
Wohnort: Berlin
|
Es gibt übrigens ein Tool namens Shellcheck. Wenn ich Deinen Code mit Gewalt so ergänze, dass es läuft (weil einige Deklarationen offenbar ausgelassen wurden):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 | #!/bin/bash
#
# Frage aus Forum
#
start=./giftig
fpara=-type
von=f
start_o=START_O
nach=NACH
para=PARA
zahl=0
find "$start" $fpara $von | while read i ; do # die gewünschten Dateien suchen
((zahl+=1))
quelle=$(dirname "$i") # der Pfad der Datei
datei=$(basename "$i") # der Name der Datei
# name=${datei%.*} # nur der Name
ziel=${start%/*}"/$start_o.$nach"${quelle##*$start_o} # der Pfad für die konvertierte Datei
echo "$i" # die normale Datei
echo "$ziel/${datei%.*}.$nach" # die veränderte Datei
# 2x echo davor gesetzt
echo mkdir -p "$ziel" # den Ordner für die neuen Dateien erstellen
echo convert $para "$i" "$ziel/${datei%.*}.$nach" # die Datei verändern
echo "-------------------------------------------------------------------------------"
echo $zahl
done # Endo von find $start
echo $zahl
|
Dann erfahre ich: | t201:~/proj/mini/forum > shellcheck tmp/pipeproblem.sh
In tmp/pipeproblem.sh line 14:
((zahl+=1))
^-- SC2030: Modification of zahl is local (to subshell caused by pipeline).
In tmp/pipeproblem.sh line 27:
echo $zahl
^-- SC2031: zahl was modified in a subshell. That change might be lost.
|
Mit der alten Arithmetiksyntax auch noch: | In tmp/pipeproblem.sh line 14:
zahl=`expr $zahl + 1`
^-- SC2030: Modification of zahl is local (to subshell caused by pipeline).
^-- SC2006: Use $(..) instead of legacy `..`.
^-- SC2003: expr is antiquated. Consider rewriting this using $((..)), ${} or [[ ]].
|
|
Naubaddi
(Themenstarter)
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 744
|
Hi, O.K. es war nur die Schleife in meinem ersten Beitrag mit vielen Variablen (ohne Deklaration) deren Inhalt Ihr (noch) nicht kennt, ganz unten ist das komplette Skript. 😀 das Skript funktioniert und ich habe reichlich dazugelernt 😎 , besten Dank für Eure Hilfe und Tipps. Das Tool schellcheck ist schon installiert, so etwas gefällt mir. Dass Einzige was hier bei mir funktioniert ist die Umstellung der Schleife:
| ...
anzahl=0 # Zähler für die gefundenen Dateien
#
while read i ; do # wiederholen bis nix mehr gefunden wird
((anzahl+=1)) # Zähler um 1 erhöhen
...
...
done < <( find "$start" $fpara $von ) # die gewünschten Dateien suchen
echo $anzahl
...
|
Das Skript konvert-mUO.sh:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97 | #!/bin/bash
#
# --- Infos ----------------------------------------------------------------------------------------------------
#
# Scriptname konvert-mUO.sh
# Funktion mit convert Dateien verändern
#
# benötigt bash, convert
#
# Status noch in Arbeit ( wer wird schon fertig??? )
# Fehler keine, oder??? ( Naubadi is pörfekt )
#
# Start 27.04.2019
# Stand 14.05.2019
#
# --- Variablen (bitte nicht ändern) ---------------------------------------------------------------------------
#
start="$1" # der übergebene Ordner mit Dateien die verändert werden sollen
start_p="" # der Pfad zum Ordner
start_o="" # nur der Ordner
quelle="" # Ordner bzw. Unterordner der Dateien die verändert werden sollen
ziel="" # der Ordner bzw. Unterordner für die veränderten Dateien
datei="" # die Datei die verändert werden soll
#
# --- Variablen (bei Bedarf ändern) ----------------------------------------------------------------------------
#
para="" # Parameter für das Programm
beenden="q" # mit dieser Taste wird das Skript beendet
#
# --- Script Anfang --------------------------------------------------------------------------------------------
#
function eingeben { # eine Funktion für Eingaben
echo -n $1" " ; read eingabe # Eingabe einlesen
if [ ! "$eingabe" ] ; then # wenn nichts eingegeben wurde
eingabe=$2 # einen Standardwert
fi # Ende von if $eingabe
} # Ende von function eingeben
#
eingabe="" # eine Variable für die Eingabe
start_p=${start%/*} # der Pfad zum Ordner
start_o=${start##*/} # nur der Ordner
clear # den Terminal Inhalt löschen
#
if [ "$start" ] ; then # wenn ein Ordner übergeben wurde
#
echo "-------------------------------------------------------------------------------"
echo "Der Ordner der übergebene wurde:" # Text anzeigen
echo " $start" # der übergebene Ordner
echo "-------------------------------------------------------------------------------"
eingeben "Wie tief soll gesucht werden 1?" "1" # zur Funktion eingeben
tief=$eingabe # den Wert der Eingabe übernehmen
echo "-------------------------------------------------------------------------------"
eingeben "Welche Dateien sollen verändert werden *.*?" "*.*" # zur Funktion eingeben
von=$eingabe # den Wert der Eingabe übernehmen
echo "-------------------------------------------------------------------------------"
eingeben "Welches Format für die neuen Dateien bmp?" "bmp" # zur Funktion eingeben
nach=$eingabe # den Wert der Eingabe übernehmen
echo "-------------------------------------------------------------------------------"
#
fpara="-maxdepth "$tief" -type f -iname" # Parameter für find
anzahl=0 # Zähler für die gefundenen Dateien
#
while read i ; do # wiederholen bis nix mehr gefunden wird
((anzahl+=1)) # Zähler um 1 erhöhen
quelle=$(dirname "$i") # der Pfad der Datei
datei=$(basename "$i") # der Name der Datei
name=${datei%.*} # nur der Name
ziel=${start%/*}"/$start_o.$nach"${quelle##*$start_o} # der Pfad für die veränderte Datei
echo "$i" # die normale Datei
echo "$ziel/${datei%.*}.$nach" # die veränderte Datei
mkdir -p "$ziel" # den Ordner für die neuen Dateien erstellen
convert $para "$i" "$ziel/${datei%.*}.$nach" # die Datei verändern
echo "-------------------------------------------------------------------------------"
done < <( find "$start" $fpara $von ) # die gewünschten Dateien suchen
#
fi # Ende von if $start
#
if [ "$start" ] ; then # wenn alles erledigt wurde
echo "Fertig, es wurden $anzahl Dateien verändert!" # Text anzeigen
echo "Die veränderten Dateien sind im Ordner:" # Text anzeigen
echo " $start_p/$start_o.$nach" # Text anzeigen
echo "-------------------------------------------------------------------------------"
else # wenn nix zu tun war
echo "Es wurde kein Ordner übergeben!" # Text anzeigen
fi # Ende von if $start
#
echo # Leerzeile
echo -n "Bitte $beenden drücken für beenden: " # Text anzeigen
#
while [ "$eingabe" != $beenden ] ; do # Schleife für die Eingabe
read -t 1 -s -n 1 -p "" eingabe # Eingabe einlesen
done # Ende von while $eingabe
#
echo # Leerzeile
#
# --- Skript Ende ----------------------------------------------------------------------------------------------
#
|
Grüßle, Naubaddi
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12802
|
Naubaddi schrieb: Man kann auch die ursprüngliche Version recht einfach retten: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 | find "$start" $fpara $von | {
zahl=0
while read i ; do # die gewünschten Dateien suchen
zahl=`expr $zahl + 1`
quelle=$(dirname "$i") # der Pfad der Datei
datei=$(basename "$i") # der Name der Datei
name=${datei%.*} # nur der Name
ziel=${start%/*}"/$start_o.$nach"${quelle##*$start_o} # der Pfad für die konvertierte Datei
echo "$i" # die normale Datei
echo "$ziel/${datei%.*}.$nach" # die veränderte Datei
mkdir -p "$ziel" # den Ordner für die neuen Dateien erstellen
convert $para "$i" "$ziel/${datei%.*}.$nach" # die Datei verändern
echo "-------------------------------------------------------------------------------"
done
echo $zahl
}
|
|
Naubaddi
(Themenstarter)
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 744
|
Hi, habe es gerade getestet, es funktioniert in meinem Fall nicht wie gewünscht. Es soll nur der letzte Wert nach der find-Schleife ausgegeben werden, hatte ich wohl vergessen zu erwähnen. Also nicht vor } sondern nach }, macht nix auch diese Art einer Schleife sieht übersichtlicher aus als meine erste Schleife. Grüßle, Naubaddi
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12802
|
Naubaddi schrieb:
habe es gerade getestet, es funktioniert in meinem Fall nicht wie gewünscht. Es soll nur der letzte Wert nach der find-Schleife ausgegeben werden,
Wird es doch auch.
hatte ich wohl vergessen zu erwähnen.
Nee, das war schon klar.
Also nicht vor } sondern nach }, macht nix auch diese Art einer Schleife sieht übersichtlicher aus als meine erste Schleife.
Was funktioniert denn nicht? Die while -Schleife endet doch erst, wenn der read nix mehr lesen kann. Und das ist genau dann der Fall, wenn find terminiert hat. Übrigens, Zeile 5 kann man POSIX-konform so schreiben:
|
Naubaddi
(Themenstarter)
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 744
|
Hi, die Variable $zahl gibt in der find-Schleife den letzten Wert aus das ist korrekt, ich möchte den Wert außerhalb der find-Schleife benutzen. Das funktioniert bis jetzt nur mit der Version von Mooi. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | find "$start" $fpara $von | {
zahl=0
while read i ; do # die gewünschten Dateien suchen
zahl=`expr $zahl + 1`
quelle=$(dirname "$i") # der Pfad der Datei
datei=$(basename "$i") # der Name der Datei
name=${datei%.*} # nur der Name
ziel=${start%/*}"/$start_o.$nach"${quelle##*$start_o} # der Pfad für die konvertierte Datei
echo "$i" # die normale Datei
echo "$ziel/${datei%.*}.$nach" # die veränderte Datei
mkdir -p "$ziel" # den Ordner für die neuen Dateien erstellen
convert $para "$i" "$ziel/${datei%.*}.$nach" # die Datei verändern
echo "-------------------------------------------------------------------------------"
done
echo $zahl <-- hier ist der Wert O.K.
}
echo $zahl <-- hier ist der Wert 0
|
Grüßle, Naubaddi
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12802
|
Naubaddi schrieb:
die Variable $zahl gibt in der find-Schleife den letzten Wert aus das ist korrekt, ich möchte den Wert außerhalb der find-Schleife benutzen.
Nun ja, das war an Deinem ersten Skript so nicht zu erkennen, aber Du kannst natürlich weitere Befehle in die Subshell packen. Es spielt ja keinen Walzer, wenn der find schon beendet ist und Du noch weitere Befehle ausführst. Blöd ist nur, wenn Du dann noch von Stdin lesen willst - das wird dann etwas umständlicher, geht aber auch: | exec 6<&1
find ... | while read file; do
echo -en "File: $file\nInput: "
read input <&6
echo "Habe: $input"
done
|
Das funktioniert bis jetzt nur mit der Version von Mooi.
Ich mag den Ansatz nicht, weil das nur in der bash (und vielleicht der zsh ) funktioniert. Ist so eine Marotte von mir, das ich möglichst nur POSIX verwenden will, weil das dann theoretisch auf mehr Systemen funktioniert. Du müsstest mal rauslassen, was Du dann noch so alles machen willst. Wenn ich viele Dateien verarbeiten will, die aus einem find stammen, mache ich das i.d.R. so: | find ... -exec sh -c '
for f; do
echo "Mach was mit $f"
done
' -- {} +
|
Als Variante davon habe ich auch schon mal so etwas gebaut: | if [ "$1" = --nested ]; then
shift
for f; do
echo "Mach was mit $f"
done
else
find ... -exec "$0" --nested {} +
fi
|
Aber auch hier kann der erste Zweig der if -Verweigung mehr als ein Mal ausgeführt werden (wenn nämlich mehr Dateinamen gefunden werden, als in eine Kommandozeile passen). Aber wichtig wäre zu wissen, was Du nach der while -Schleife noch so alles machen willst.
|
Naubaddi
(Themenstarter)
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 744
|
Hi, besten Dank für Deine Geduld mit mir, rklm schrieb: ...Ich mag den Ansatz nicht, weil das nur in der bash (und vielleicht der zsh ) funktioniert...
diese Einstellung gefällt mir 👍 , macht Dich direkt sehr sympathisch (in meinen Augen)! Das es nur in einer bash funktioniert war mir nicht bewusst. Mein Anliegen ist auch so neutral/modular wie möglich Dinge zu gestalten, so konnte ich meine Kreationen über 30 Jahre von System zu System mit wenig Aufwand weiter nutzen. Und das waren schon ein paar, warum auch immer waren es Systeme die nur Wenige benutzten (VZ200, TOS, GEM, CPM, OS/2... und jetzt Linux). Habe das Skript nochmal genauer betrachtet und angepasst auf Deine Version, es funktioniert durch Verschieben der Ausgabe von $anzahl in die find-Schleife ☺" 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 | #
fpara="-maxdepth $tief -type f -iname" # Parameter für find
#
find "$start" $fpara "$von" | { # die gewünschten Dateien suchen
#
anzahl=0 # Zähler für die gefundenen Dateien
fehler=0 # Zähler für Fehler
#
while read -r i ; do # wiederholen bis nix mehr gefunden wird
quelle=$(dirname "$i") # der Pfad der Datei
datei=$(basename "$i") # der Name der Datei
# name=${datei%.*} # nur der Name
ziel="${start%/*}/$start_o.$nach${quelle##*$start_o}" # der Pfad für die veränderte Datei
echo "$i" # die normale Datei
echo "$ziel/${datei%.*}.$nach" # die veränderte Datei
mkdir -p "$ziel" # den Ordner für die neuen Dateien erstellen
convert $para "$i" "$ziel/${datei%.*}.$nach" # die Datei verändern
#
dumm="$?" # Rückgabewert übernehmen
if [ "$dumm" = "0" ] ; then # Anzahl oder Fehler um 1 erhöhen
((anzahl+=1)) # die Anzahl um 1 erhöhen
else # sonst
((fehler+=1)) # die Fehler um 1 erhöhen
fi # Ende von if $?
#
echo "-------------------------------------------------------------------------------"
done # Ende von while read
#
echo "Fertig, es sind $fehler Fehler aufgetreten, $anzahl Dateien wurden verändert!"
echo "Die veränderten Dateien sind im Ordner:" # Text anzeigen
echo " $start_p/$start_o.$nach" # Text anzeigen
echo "-------------------------------------------------------------------------------"
#
} # Ende von find $start
#
|
...Aber wichtig wäre zu wissen, was Du nach der while -Schleife noch so alles machen willst...
Im Moment noch nix, wer weiss was mir in 5 oder 10 Jahren noch so einfällt. Das Tool shellcheck wirft bei dem Skript nur einen Vorschlag aus, der ignoriert werden kann weil es so gewollt ist:
In ~/Dokumente/1-Hilfe/Skripte/konvert-mUO.sh line 59:
find "$start" $fpara "$von" | { # die gewünschten Dateien suchen
^-- SC2086: Double quote to prevent globbing and word splitting.
an der Stelle braucht find halt mehrere Parameter. Hier nochmal das aktuelle funktionierende (konforme?) Skript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108 | #!/bin/bash
#
# --- Infos ----------------------------------------------------------------------------------------------------
#
# Scriptname konvert-mUO.sh
# Funktion mit convert Dateien verändern
#
# benötigt bash, convert
#
# Status noch in Arbeit ( wer wird schon fertig??? )
# Fehler keine, oder??? ( Naubadi is pörfekt )
#
# Start 27.04.2019
# Stand 14.05.2019
#
# --- Variablen (bitte nicht ändern) ---------------------------------------------------------------------------
#
start="$1" # der übergebene Ordner mit Dateien die verändert werden sollen
#
# --- Variablen (den Inhalt bei Bedarf ändern) -----------------------------------------------------------------
#
para="" # Parameter für das Programm
beenden="q" # mit dieser Taste wird das Skript beendet
#
# --- Funktionen -----------------------------------------------------------------------------------------------
#
function eingeben { # eine Funktion für Eingaben
echo -n "$1 " ; read -r eingabe # Eingabe einlesen
if [ ! "$eingabe" ] ; then # wenn nichts eingegeben wurde
eingabe=$2 # einen Standardwert
fi # Ende von if $eingabe
} # Ende von function eingeben
#
# --- Script Anfang --------------------------------------------------------------------------------------------
#
eingabe="" # Variable für die Eingabe löschen
start_p=${start%/*} # der Pfad zum übergeordneten Ordner
start_o=${start##*/} # nur der Ordner
clear # den Terminal Inhalt löschen
#
if [ "$start" ] ; then # wenn ein Ordner übergeben wurde
#
echo "-------------------------------------------------------------------------------"
echo "Der Ordner der übergebene wurde:" # Text anzeigen
echo " $start" # der übergebene Ordner
echo "-------------------------------------------------------------------------------"
eingeben "Wie tief soll gesucht werden 1?" "1" # zur Funktion eingeben
tief=$eingabe # den Wert der Eingabe übernehmen
echo "-------------------------------------------------------------------------------"
eingeben "Welche Dateien sollen verändert werden *.*?" "*.*" # zur Funktion eingeben
von=$eingabe # den Wert der Eingabe übernehmen
echo "-------------------------------------------------------------------------------"
eingeben "Welches Format für die neuen Dateien bmp?" "bmp" # zur Funktion eingeben
nach=$eingabe # den Wert der Eingabe übernehmen
echo "-------------------------------------------------------------------------------"
#
fpara="-maxdepth $tief -type f -iname" # Parameter für find
#
find "$start" $fpara "$von" | { # die gewünschten Dateien suchen
#
anzahl=0 # Zähler für die gefundenen Dateien
fehler=0 # Zähler für Fehler
#
while read -r i ; do # wiederholen bis nix mehr gefunden wird
quelle=$(dirname "$i") # der Pfad der Datei
datei=$(basename "$i") # der Name der Datei
# name=${datei%.*} # nur der Name
ziel="${start%/*}/$start_o.$nach${quelle##*$start_o}" # der Pfad für die veränderte Datei
echo "$i" # die normale Datei
echo "$ziel/${datei%.*}.$nach" # die veränderte Datei
mkdir -p "$ziel" # den Ordner für die neuen Dateien erstellen
convert $para "$i" "$ziel/${datei%.*}.$nach" # die Datei verändern
#
dumm="$?" # Rückgabewert übernehmen
if [ "$dumm" = "0" ] ; then # Anzahl oder Fehler um 1 erhöhen
((anzahl+=1)) # die Anzahl um 1 erhöhen
else # sonst
((fehler+=1)) # die Fehler um 1 erhöhen
fi # Ende von if $?
#
echo "-------------------------------------------------------------------------------"
done # Ende von while read
#
echo "Fertig, es sind $fehler Fehler aufgetreten, $anzahl Dateien wurden verändert!"
echo "Die veränderten Dateien sind im Ordner:" # Text anzeigen
echo " $start_p/$start_o.$nach" # Text anzeigen
echo "-------------------------------------------------------------------------------"
#
} # Ende von find $start
#
fi # Ende von if $start
#
if [ ! "$start" ] ; then # wenn kein Ordner übergeben wurde
echo "Es wurde kein Ordner übergeben!" # Text anzeigen
fi # Ende von if $start
#
echo # Leerzeile
echo -n "Bitte $beenden drücken für beenden: " # Text anzeigen
#
while [ "$eingabe" != $beenden ] ; do # Schleife für die Eingabe
read -r -t 1 -s -n 1 -p "" eingabe # Eingabe einlesen
echo -n "$eingabe" # eingegebenes Zeichen anzeigen
done # Ende von while $eingabe
#
echo # Leerzeile
#
# --- Skript Ende ----------------------------------------------------------------------------------------------
#
|
Grüßle, Naubaddi
|