5 WIP
This commit is contained in:
		
							
								
								
									
										220
									
								
								5.html
									
									
									
									
									
								
							
							
						
						
									
										220
									
								
								5.html
									
									
									
									
									
								
							@@ -61,7 +61,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
					<p>http://programmingexamples.wikidot.com/bash-scripting#toc24
 | 
										<p>http://programmingexamples.wikidot.com/bash-scripting#toc24
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					<p>https://wiki.ubuntuusers.de/Shell/Bash-Skripting-Guide_für_Anfänger/#Quoting
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
					<div>
 | 
										<div>
 | 
				
			||||||
					- script kontrolle ( strg-z etc )
 | 
										- script kontrolle ( strg-z etc )
 | 
				
			||||||
@@ -84,7 +83,9 @@ X=20            #variablen sind Case Sensitive
 | 
				
			|||||||
$y=             #NULL variable
 | 
					$y=             #NULL variable
 | 
				
			||||||
echo "x = $x"
 | 
					echo "x = $x"
 | 
				
			||||||
echo "X = $X"
 | 
					echo "X = $X"
 | 
				
			||||||
echo "y = $y"</code></pre>
 | 
					echo "y = $y"
 | 
				
			||||||
 | 
					unset x 		#variable löschen
 | 
				
			||||||
 | 
					echo $x</code></pre>
 | 
				
			||||||
				</section>
 | 
									</section>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<section>
 | 
									<section>
 | 
				
			||||||
@@ -105,38 +106,203 @@ echo $(( 2#101011 ))  # Base conversion, not a comment.
 | 
				
			|||||||
				</section>
 | 
									</section>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<section>
 | 
									<section>
 | 
				
			||||||
					<h3>Quotes</h3>
 | 
										<h3>Quoting</h3>
 | 
				
			||||||
 | 
										<ul style="font-size: .8em ">
 | 
				
			||||||
					<ul>
 | 
											<li class="fragment "><code>" "</code> (Anführungszeichen)	Alles zwischen diesen Zeichen ist buchstabengetreu zu interpretieren. Ausnahmen :<code> $ ` " \ </code></li>
 | 
				
			||||||
						<li class="fragment ">Double Quotes: " " -Anything enclose in double quotes removed meaning of that characters (except \ and $).</li>
 | 
											<li class="fragment "><code>' ' </code>(Ticks)	Alles zwischen diesen Zeichen wird wörtlich genommen, mit Ausnahme eines weiteren <code>'</code>.</li>
 | 
				
			||||||
						<li class="fragment ">Single quotes: ' ' - Enclosed in single quotes remains unchanged.</li>
 | 
											<li class="fragment "><code>\</code> (Backslash)	Das Zeichen nach einem <code>\</code> wird wörtlich genommen. Anwendung z. B. innerhalb von " ", um ", $ und ` zu entwerten.</li>
 | 
				
			||||||
						<li class="fragment ">Back quote: ` ` - To execute command</li>
 | 
											<li class="fragment "><code>` `</code> (Backticks)	Alles innerhalb wird als Kommando interpretiert.</li>
 | 
				
			||||||
					</ul>
 | 
										</ul>
 | 
				
			||||||
				</section>
 | 
									</section>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									<section>
 | 
				
			||||||
 | 
					<pre><code>$ echo 'Ticks "schützen" Anführungszeichen' 
 | 
				
			||||||
 | 
					Ticks "schützen" Anführungszeichen 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$ echo "Ist dies ein \"Sonderfall\"?" 
 | 
				
			||||||
 | 
					Ist dies ein "Sonderfall"? 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$ echo "Sie haben `ls | wc -l` Dateien in `pwd`" 
 | 
				
			||||||
 | 
					Sie haben 43 Dateien in /home/dany 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$ echo "Der Wert von \$x ist $x" 
 | 
				
			||||||
 | 
					Der Wert von $x ist 100
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Maskierung der Leerstelle mit \
 | 
				
			||||||
 | 
					message="hallo Welt" 
 | 
				
			||||||
 | 
					message=hello\ Welt
 | 
				
			||||||
 | 
										</code></pre>
 | 
				
			||||||
 | 
									</section>
 | 
				
			||||||
 | 
									<section><pre><code>echo 'So sprach'"'"'s und ging ohne einen Backslash (\) weiter.'
 | 
				
			||||||
 | 
					     └────┬────┘└┬┘└─────────────────────┬─────────────────────┘
 | 
				
			||||||
 | 
					          │      │                       │
 | 
				
			||||||
 | 
					          │      │                       └ Dritter Bereich: Wieder
 | 
				
			||||||
 | 
					          │      │                         von ' umschlossen, der 
 | 
				
			||||||
 | 
					          │      │                         Backlash verliert
 | 
				
			||||||
 | 
					          │      │                         seine Sonderbedeutung.
 | 
				
			||||||
 | 
					          │      │
 | 
				
			||||||
 | 
					          │      └ Zweiter Bereich: Von " umschlossen, enthält ein
 | 
				
			||||||
 | 
					          │        einzelnes '.
 | 
				
			||||||
 | 
					          │
 | 
				
			||||||
 | 
					          └ Erster Bereich: Von ' umschlossen.</code></pre></section>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				<section>
 | 
									<section>
 | 
				
			||||||
					<h3>Input - Output redirection</h3>
 | 
										<h3>Input - Output redirection</h3>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
	<li class="fragment "> > : output in Datei. Best. Datei wird überschrieben!</li>
 | 
					 | 
				
			||||||
	<li class="fragment "> >> : output an Datei anhängen.</li>
 | 
					 | 
				
			||||||
	<li class="fragment "> < : Kommando Input aus Datei lesen</li>
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
						<pre><code>#!/bin/bash
 | 
											<pre><code>#!/bin/bash
 | 
				
			||||||
echo "ls > file_list"
 | 
					# > : output in Datei. Best. Datei wird überschrieben!
 | 
				
			||||||
ls > file_list
 | 
					ls > file_list
 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo "ls -la >> file_list"
 | 
					# >> : output an Datei anhängen.
 | 
				
			||||||
ls -la >> file_list
 | 
					ls -la >> file_list
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
echo "cat < file_list"
 | 
					# < : Kommando Input aus Datei lesen
 | 
				
			||||||
cat < file_list</code></pre>
 | 
					cat < file_list</code></pre>
 | 
				
			||||||
 | 
					 | 
				
			||||||
						
 | 
					 | 
				
			||||||
				</section>
 | 
									</section>
 | 
				
			||||||
				<section>
 | 
									<section>
 | 
				
			||||||
					- arithmetik
 | 
										Man kann Kommandos auch verkettten:
 | 
				
			||||||
 | 
										<table style="font-size: .5em">
 | 
				
			||||||
 | 
											<tbody>
 | 
				
			||||||
 | 
												<tr>
 | 
				
			||||||
 | 
												<td >Kommando1; Kommando2
 | 
				
			||||||
 | 
												</td>
 | 
				
			||||||
 | 
												<td >fühert die Kommandos hintereinander aus
 | 
				
			||||||
 | 
												</td>
 | 
				
			||||||
 | 
												</tr>
 | 
				
			||||||
 | 
												<tr>
 | 
				
			||||||
 | 
												<td >Kommando1 && Kommando2
 | 
				
			||||||
 | 
												</td>
 | 
				
			||||||
 | 
												<td >führt Kommando2 aus, wenn kommando1 erfolgreich war
 | 
				
			||||||
 | 
												</td>
 | 
				
			||||||
 | 
												</tr>
 | 
				
			||||||
 | 
												<tr>
 | 
				
			||||||
 | 
												<td >Kommando1 || Kommando2
 | 
				
			||||||
 | 
												</td>
 | 
				
			||||||
 | 
												<td >führt Kommando2 aus, wenn kommando1 NICHT erfolgreich war
 | 
				
			||||||
 | 
												</td>
 | 
				
			||||||
 | 
												</tr>
 | 
				
			||||||
 | 
												<tr>
 | 
				
			||||||
 | 
												<td >Kommado &
 | 
				
			||||||
 | 
												</td>
 | 
				
			||||||
 | 
												<td >Führt Kommando im Hintergrund aus
 | 
				
			||||||
 | 
												</td>
 | 
				
			||||||
 | 
												</tr>
 | 
				
			||||||
 | 
												<tr>
 | 
				
			||||||
 | 
												<td >Kommando1 & Kommando2
 | 
				
			||||||
 | 
												</td>
 | 
				
			||||||
 | 
												<td >startet Kommando1 im Hintergrund, Kommando2 im Vordergrund
 | 
				
			||||||
 | 
												</td>
 | 
				
			||||||
 | 
												</tr>
 | 
				
			||||||
 | 
												<tr>
 | 
				
			||||||
 | 
												<td >( Kommando1; Kommando2 )
 | 
				
			||||||
 | 
												</td>
 | 
				
			||||||
 | 
												<td >Führt die beiden K. nacheinander in einer Subshell aus
 | 
				
			||||||
 | 
												</td>
 | 
				
			||||||
 | 
												</tr>
 | 
				
			||||||
 | 
											</tbody>
 | 
				
			||||||
 | 
										</table>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										<pre class="fragment"><code>sudo apt-get update && sudo apt-get upgrade -y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					tar cf archiv.tar && rm *.doc || echo "fehler"</code></pre>
 | 
				
			||||||
 | 
									</section>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									 <section>
 | 
				
			||||||
 | 
										<span style="color: orange">Aufgabe:</span> Erstellt ein script, das den Inhalt eures home in eine Variable <code>liste</code> schreibt, und gebt den Inhalt dieser Variablen in eine Textdatei <code>liste.txt</code> aus.<br />
 | 
				
			||||||
 | 
								        Hinweis: ls , tee
 | 
				
			||||||
 | 
								        <pre class="fragment"><code>#!/bin/bash
 | 
				
			||||||
 | 
					OUTFILE="liste.txt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					liste=`ls | tee $OUTFILE `
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo $liste
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cat $OUTFILE
 | 
				
			||||||
 | 
					 </code></pre>
 | 
				
			||||||
 | 
					 				</section>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							        <section>
 | 
				
			||||||
 | 
							        	<h3>exit status</h3>
 | 
				
			||||||
 | 
							        	<pre><code>exit 0</code></pre>
 | 
				
			||||||
 | 
							        	heisst : alles gut gelaufen
 | 
				
			||||||
 | 
							        	<pre><code>exit 1</code></pre>
 | 
				
			||||||
 | 
							        	heisst : kommando fehlgeschlagen
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							        	<p> der exit code in scripten kann beliebig gesetzt werden
 | 
				
			||||||
 | 
							        	<p>Standard: exit 0 -> alles fein
 | 
				
			||||||
 | 
							        </section>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							        <section>
 | 
				
			||||||
 | 
							        	<h3>Funktionen</h3>
 | 
				
			||||||
 | 
							        	<pre><code>#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#Funktions Deklaration:
 | 
				
			||||||
 | 
					count () {
 | 
				
			||||||
 | 
					  ls | wc -l  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # ls: Liste aller Objekte im Verzeichnis
 | 
				
			||||||
 | 
					  # wc: Word-Count; mit Attribut -l werden Zeilen gezählt
 | 
				
			||||||
 | 
					  # in Verbindung mit ls werden also die (nicht versteckten) Objekte gezählt
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					count        # Aufruf der Funktion
 | 
				
			||||||
 | 
							        	</code></pre>
 | 
				
			||||||
 | 
							        </section>
 | 
				
			||||||
 | 
							        <section>
 | 
				
			||||||
 | 
							        	<pre><code>#!/bin/bash
 | 
				
			||||||
 | 
					count2 () {
 | 
				
			||||||
 | 
						# überprüfen, ob der erste Parameter ein Verzeichnis ist
 | 
				
			||||||
 | 
						if [ -d "$1" ]; then   
 | 
				
			||||||
 | 
							ls $1 | wc -l     
 | 
				
			||||||
 | 
							exit 0            # alles OK
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							echo "Ungültiges Verzeichnis: $1"
 | 
				
			||||||
 | 
							exit 1            # Fehler
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					count2 "/gibt/es/garnicht"  # Aufrufe der Funktion count2
 | 
				
			||||||
 | 
					echo "Status: $?"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					count2 "/etc"
 | 
				
			||||||
 | 
					echo "Status: $?"</code></pre>
 | 
				
			||||||
 | 
							        </section>
 | 
				
			||||||
 | 
							        <section>
 | 
				
			||||||
 | 
							        	    <div class="fragment"><pre><code>#!/bin/bash
 | 
				
			||||||
 | 
					tar -czf myhome_directory.tar.gz /home/$USER
 | 
				
			||||||
 | 
					mkdir archiv
 | 
				
			||||||
 | 
					mv myhome_directory.tar.gz archiv/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
											</code></pre>
 | 
				
			||||||
 | 
										</div>
 | 
				
			||||||
 | 
							        </section>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									<section>
 | 
				
			||||||
 | 
					                    <pre><code>
 | 
				
			||||||
 | 
					Integer Berechnungen
 | 
				
			||||||
let "m = 4 * 1024";echo $m 
 | 
					let "m = 4 * 1024";echo $m 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let "m += 15"
 | 
					let "m += 15"
 | 
				
			||||||
@@ -145,10 +311,12 @@ cat < file_list</code></pre>
 | 
				
			|||||||
let "m %= 10"
 | 
					let "m %= 10"
 | 
				
			||||||
let "m++"
 | 
					let "m++"
 | 
				
			||||||
let "m--"
 | 
					let "m--"
 | 
				
			||||||
 | 
					</code></pre>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let "k = (m < 9) ? 0 : 1"
 | 
					let "k = (m < 9) ? 0 : 1"
 | 
				
			||||||
condition ? value-if-true : value-if-false
 | 
					condition ? value-if-true : value-if-false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          <pre><code>
 | 
				
			||||||
Floating Poin:
 | 
					Floating Poin:
 | 
				
			||||||
echo "32.0 + 1.4" | bc 
 | 
					echo "32.0 + 1.4" | bc 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -156,7 +324,7 @@ cat < file_list</code></pre>
 | 
				
			|||||||
m=`expr $m + 18`
 | 
					m=`expr $m + 18`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(( m *= 4 ))
 | 
					(( m *= 4 ))
 | 
				
			||||||
 | 
					</code></pre>
 | 
				
			||||||
				</section>
 | 
									</section>
 | 
				
			||||||
				<section data-transition="slide" data-background="#4d7e65" data-background-transition="zoom">
 | 
									<section data-transition="slide" data-background="#4d7e65" data-background-transition="zoom">
 | 
				
			||||||
       
 | 
					       
 | 
				
			||||||
@@ -164,17 +332,7 @@ cat < file_list</code></pre>
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <section>
 | 
					     
 | 
				
			||||||
          <h3>Die 5 Level eines Vim Magiers</h3>
 | 
					 | 
				
			||||||
          <ul>
 | 
					 | 
				
			||||||
            <li>Level 0: nichts über vim wissen 
 | 
					 | 
				
			||||||
            <li>Level 1: vim basics kennen
 | 
					 | 
				
			||||||
            <li>Level 2: den visual mode kennen
 | 
					 | 
				
			||||||
            <li>Level 3: diverse „motions“ kennen
 | 
					 | 
				
			||||||
            <li>Level 4: den visual mode nicht brauchen
 | 
					 | 
				
			||||||
          </ul>
 | 
					 | 
				
			||||||
        <p>https://danielmiessler.com/study/vim/
 | 
					 | 
				
			||||||
        </section>
 | 
					 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										0
									
								
								beispiele/4/mysystem.sh
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								beispiele/4/mysystem.sh
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										4
									
								
								beispiele/5/01-vars.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										4
									
								
								beispiele/5/01-vars.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							@@ -6,3 +6,7 @@ $y=             #NULL variable
 | 
				
			|||||||
echo "x = $x"
 | 
					echo "x = $x"
 | 
				
			||||||
echo "X = $X"
 | 
					echo "X = $X"
 | 
				
			||||||
echo "y = $y"
 | 
					echo "y = $y"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					unset x
 | 
				
			||||||
 | 
					echo "x = $x"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										0
									
								
								beispiele/5/02-comments.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								beispiele/5/02-comments.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										8
									
								
								beispiele/5/03-quoting.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										8
									
								
								beispiele/5/03-quoting.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					echo 'Ticks "schützen" Anführungszeichen' 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "Ist dies ein \"Sonderfall\"?" 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "Sie haben `ls | wc -l` Dateien in `pwd`" 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "Der Wert von \$x ist $x" 
 | 
				
			||||||
							
								
								
									
										16
									
								
								beispiele/5/04-function-exitcode.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								beispiele/5/04-function-exitcode.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					count2 () {
 | 
				
			||||||
 | 
					      if [ -d "$1" ]; then   # überprüfen, ob der erste Parameter ein Verzeichnis ist
 | 
				
			||||||
 | 
					         ls $1 | wc -l       # wie oben
 | 
				
			||||||
 | 
					         exit 0            # alles OK
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					         echo "Ungültiges Verzeichnis: $1"
 | 
				
			||||||
 | 
					         exit 1            # Fehler
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					count2 "/gibt/es/garnicht"  # Aufrufe der Funktion count2
 | 
				
			||||||
 | 
					echo "Status: $?"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					count2 "/etc"
 | 
				
			||||||
 | 
					echo "Status: $?"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										13
									
								
								beispiele/5/04-function.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										13
									
								
								beispiele/5/04-function.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					fatal() {
 | 
				
			||||||
 | 
					     msg=$1
 | 
				
			||||||
 | 
					     echo "Fatal: $msg"
 | 
				
			||||||
 | 
					     exit 1
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					[ -d /tmp ] || fatal "Verzeichnis /tmp existiert nicht"
 | 
				
			||||||
 | 
					[ -w /tmp ] || fatal "Verzeichnis /tmp nicht schreibbar"
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					TMP=/tmp/mydir
 | 
				
			||||||
 | 
					[ -d $TMP ] || mkdir $TMP    # tmp-Verz. erzeugen, wenn noch nicht vorhanden
 | 
				
			||||||
							
								
								
									
										0
									
								
								beispiele/5/recursive-func.sh → beispiele/5/05-recursive-func.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								beispiele/5/recursive-func.sh → beispiele/5/05-recursive-func.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										9
									
								
								beispiele/5/06-dialog.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										9
									
								
								beispiele/5/06-dialog.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					# Set PS3 prompt
 | 
				
			||||||
 | 
					PS3="Enter the space shuttle to get more information : "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# set shuttle list
 | 
				
			||||||
 | 
					select shuttle in columbia endeavour challenger discovery atlantis enterprise pathfinder
 | 
				
			||||||
 | 
					do
 | 
				
			||||||
 | 
					    echo "$shuttle selected"
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
							
								
								
									
										48
									
								
								beispiele/5/07-select-menu.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								beispiele/5/07-select-menu.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,48 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					# Set PS3 prompt
 | 
				
			||||||
 | 
					PS3="Enter the space shuttle to get more information : "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# set shuttle list
 | 
				
			||||||
 | 
					select shuttle in columbia endeavour challenger discovery atlantis enterprise pathfinder
 | 
				
			||||||
 | 
					do
 | 
				
			||||||
 | 
					    case $shuttle in
 | 
				
			||||||
 | 
							columbia)
 | 
				
			||||||
 | 
								echo "--------------"
 | 
				
			||||||
 | 
								echo "Space Shuttle Columbia was the first spaceworthy space shuttle in NASA's orbital fleet."
 | 
				
			||||||
 | 
								echo "--------------"
 | 
				
			||||||
 | 
								;;
 | 
				
			||||||
 | 
							endeavour)
 | 
				
			||||||
 | 
								echo "--------------"		
 | 
				
			||||||
 | 
								echo "Space Shuttle Endeavour is one of three currently operational orbiters in the Space Shuttle." 
 | 
				
			||||||
 | 
								echo "--------------"		
 | 
				
			||||||
 | 
								;;
 | 
				
			||||||
 | 
							challenger) 
 | 
				
			||||||
 | 
								echo "--------------"				
 | 
				
			||||||
 | 
							    echo "Space Shuttle Challenger was NASA's second Space Shuttle orbiter to be put into service."
 | 
				
			||||||
 | 
								echo "--------------"				    
 | 
				
			||||||
 | 
								;;		
 | 
				
			||||||
 | 
							discovery) 
 | 
				
			||||||
 | 
								echo "--------------"		
 | 
				
			||||||
 | 
								echo "Discovery became the third operational orbiter, and is now the oldest one in service."
 | 
				
			||||||
 | 
								echo "--------------"							
 | 
				
			||||||
 | 
								;;		
 | 
				
			||||||
 | 
							atlantis)
 | 
				
			||||||
 | 
								echo "--------------"		
 | 
				
			||||||
 | 
								echo "Atlantis was the fourth operational shuttle built."
 | 
				
			||||||
 | 
								echo "--------------"							
 | 
				
			||||||
 | 
								;;
 | 
				
			||||||
 | 
							enterprise)
 | 
				
			||||||
 | 
								echo "--------------"		
 | 
				
			||||||
 | 
								echo "Space Shuttle Enterprise was the first Space Shuttle orbiter."
 | 
				
			||||||
 | 
								echo "--------------"							
 | 
				
			||||||
 | 
								;;		
 | 
				
			||||||
 | 
							pathfinder)
 | 
				
			||||||
 | 
								echo "--------------"		
 | 
				
			||||||
 | 
								echo "Space Shuttle Orbiter Pathfinder is a Space Shuttle simulator made of steel and wood."
 | 
				
			||||||
 | 
								echo "--------------"							
 | 
				
			||||||
 | 
								;;
 | 
				
			||||||
 | 
							*)		
 | 
				
			||||||
 | 
								echo "Error: Please try again (select 1..7)!"
 | 
				
			||||||
 | 
								;;		
 | 
				
			||||||
 | 
						esac
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
							
								
								
									
										0
									
								
								beispiele/5/while-menu.sh → beispiele/5/08-while-menu.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								beispiele/5/while-menu.sh → beispiele/5/08-while-menu.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										36
									
								
								beispiele/5/09-backup.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								beispiele/5/09-backup.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Get date in dd-mm-yyyy format
 | 
				
			||||||
 | 
					NOW="$(date +"%d-%m-%Y")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function file_backup {
 | 
				
			||||||
 | 
						wpbackupfile="wordpress-backup-$NOW.tar.gz"
 | 
				
			||||||
 | 
					    oxidbackupfile="oxid-back-$NOW.tar.gz"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						echo 'WP Files Backup --- building tar File...'
 | 
				
			||||||
 | 
						tar -czf $wpbackupfile ~/www/rvv/wp*
 | 
				
			||||||
 | 
						echo '+DONE'
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					    echo 'oxid  Files Backup --- building tar File...'
 | 
				
			||||||
 | 
						tar -czf $oxidbackupfile ~/www/rvv/shop
 | 
				
			||||||
 | 
						echo '+DONE'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function oxid_db_backup {
 | 
				
			||||||
 | 
					    host=localhost
 | 
				
			||||||
 | 
					    user=rvv
 | 
				
			||||||
 | 
					    pass=xxxxxxxxx
 | 
				
			||||||
 | 
					    db=webshop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						echo 'oxid DB Export ------> '
 | 
				
			||||||
 | 
						mysqldump --opt --add-drop-table -h$host -u$user -p$pass $db | gzip > oxid-db-$NOW.sql.gz
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					backupdir=~/backup
 | 
				
			||||||
 | 
					cd ~ ; mkdir $backupdir ; cd $backupdir
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					oxid_db_backup
 | 
				
			||||||
 | 
					file_backup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# delete old backups
 | 
				
			||||||
 | 
					find /home/dany/backups -mtime +10 -type f -delete
 | 
				
			||||||
							
								
								
									
										6
									
								
								beispiele/5/aufgabe1.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										6
									
								
								beispiele/5/aufgabe1.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					OUTFILE="liste.txt"
 | 
				
			||||||
 | 
					liste=`ls | tee $OUTFILE `
 | 
				
			||||||
 | 
					echo $liste
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cat $OUTFILE
 | 
				
			||||||
		Reference in New Issue
	
	Block a user