4 fertig
This commit is contained in:
		
							
								
								
									
										170
									
								
								4.html
									
									
									
									
									
								
							
							
						
						
									
										170
									
								
								4.html
									
									
									
									
									
								
							@@ -29,6 +29,10 @@
 | 
			
		||||
			document.getElementsByTagName( 'head' )[0].appendChild( link );
 | 
			
		||||
		</script>
 | 
			
		||||
 | 
			
		||||
		<style type="text/css">
 | 
			
		||||
			.reveal img{ max-height: 60vh}
 | 
			
		||||
		</style>
 | 
			
		||||
 | 
			
		||||
	</head>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -196,6 +200,24 @@ USER     Benutzername</code></pre>
 | 
			
		||||
  		         	</ul>
 | 
			
		||||
		        </section>
 | 
			
		||||
 | 
			
		||||
		        <section>
 | 
			
		||||
		        	Damit ein Script wie ein Programm startet: 
 | 
			
		||||
         			<ul>
 | 
			
		||||
         				<li class="fragment ">Pfad d. Skriptes der $PATH Variable hinzufügen</li>
 | 
			
		||||
         				<li class="fragment "><pre><code>export PATH=$PATH:/pfad/zum/script</code></pre></li>
 | 
			
		||||
         				<li class="fragment ">muss in die .bashrc</li>
 | 
			
		||||
         				<li class="fragment ">Best Practice: Scripte in Ordner <code>~/bin/</code> -> diesen zur <code>$PATH</code> dazu</li>
 | 
			
		||||
         			</ul>
 | 
			
		||||
 | 
			
		||||
         			<aside class="notes">
 | 
			
		||||
						PATH nur in der aktuellen Sizung -> sonst in die .bashrc
 | 
			
		||||
					</aside>
 | 
			
		||||
		        </section>
 | 
			
		||||
 | 
			
		||||
		        <section data-transition="slide" data-background="#4d7e65" data-background-transition="zoom">
 | 
			
		||||
		        	<h2>Gentlemen, open your Editor! </h2>
 | 
			
		||||
		        </section>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  				<section style="font-size: .6em">
 | 
			
		||||
		        	<pre><code>#!/bin/bash
 | 
			
		||||
@@ -218,8 +240,8 @@ uptime
 | 
			
		||||
 | 
			
		||||
MSG="\nDas ist alles! Bye, $USER! \n\n"
 | 
			
		||||
printf "${MSG}"</code></pre>
 | 
			
		||||
 | 
			
		||||
					<small><a href="https://git.scytec.de/danthefan/linuxkurs/raw/master/beispiele/mysystem.sh" target="_blank">https://git.scytec.de/danthefan/linuxkurs/raw/master/beispiele/mysystem.sh</a></small>
 | 
			
		||||
					<p><small><a href="https://www.schubertdaniel.de/linuxkurs" target="_blank">https://www.schubertdaniel.de/linuxkurs</a></small>
 | 
			
		||||
					<p><small><a href="https://git.scytec.de/danthefan/linuxkurs/raw/master/beispiele/mysystem.sh" target="_blank">https://git.scytec.de/danthefan/linuxkurs/raw/master/beispiele/mysystem.sh</a></small>
 | 
			
		||||
		        </section>
 | 
			
		||||
 | 
			
		||||
		        <section>
 | 
			
		||||
@@ -280,19 +302,7 @@ dany     23893  4143  0 12:33 pts/4    00:00:00 bash
 | 
			
		||||
					<p class="fragment "> Der <span class="fragment highlight-red">Kontext</span> aller Script Variablen ist der der <span class="fragment highlight-red">sub-shell</span>   
 | 
			
		||||
				</section>
 | 
			
		||||
 | 
			
		||||
  				<section>
 | 
			
		||||
		        	Damit Script wie Programm startet: 
 | 
			
		||||
         			<ul>
 | 
			
		||||
         				<li class="fragment ">Pfad d. Skriptes der $PATH Variable hinzufügen</li>
 | 
			
		||||
         				<li class="fragment "><pre><code>export PATH=$PATH:/pfad/zum/script</code></pre></li>
 | 
			
		||||
         				<li class="fragment ">muss in die .bashrc</li>
 | 
			
		||||
         				<li class="fragment ">Best Practice: Scripte in Ordner <code>~/bin/</code> -> diesen zur <code>$PATH</code> dazu</li>
 | 
			
		||||
         			</ul>
 | 
			
		||||
 | 
			
		||||
         			<aside class="notes">
 | 
			
		||||
						PATH nur in der aktuellen Sizung -> sonst in die .bashrc
 | 
			
		||||
					</aside>
 | 
			
		||||
		        </section>
 | 
			
		||||
  				
 | 
			
		||||
 | 
			
		||||
		        <section>
 | 
			
		||||
		        	Ein weiteres Beispiel:
 | 
			
		||||
@@ -315,12 +325,134 @@ fi
 | 
			
		||||
		        </section>
 | 
			
		||||
 | 
			
		||||
		        <section>
 | 
			
		||||
		        	<p>Kommando Verkettung</p>
 | 
			
		||||
		        <div><span style="color: orange">Aufgabe:</span> Erstellt ein script, das alle Dateien in eurem home in einer tar.gz - Datei archiviert, das Verzeichnis "~/archiv" erstellt, und die tar.gz Datei dorthin verschiebt.<br />
 | 
			
		||||
		        	Hinweis: tar -czf .....
 | 
			
		||||
		        	<p class="fragment">https://linuxconfig.org/bash-scripting-tutorial</p></div>
 | 
			
		||||
 | 
			
		||||
		        	<ul>
 | 
			
		||||
		        		<li class="fragment ">this</li>
 | 
			
		||||
		        	</ul>
 | 
			
		||||
		        <dir class="fragment"><pre><code>#!/bin/bash
 | 
			
		||||
tar -czf myhome_directory.tar.gz /home/$USER
 | 
			
		||||
mkdir archiv
 | 
			
		||||
mv myhome_directory.tar.gz archiv/
 | 
			
		||||
 | 
			
		||||
</code></pre></dir>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		        	
 | 
			
		||||
		        </section>
 | 
			
		||||
 | 
			
		||||
		        <section>
 | 
			
		||||
		        	<h3>Kontrollstrukturen</h3>
 | 
			
		||||
		        </section>
 | 
			
		||||
		        <section>
 | 
			
		||||
		        	<h4>if then </h4>
 | 
			
		||||
		        	<img src="img/if_then_else.svg">
 | 
			
		||||
		        </section>
 | 
			
		||||
		        <section><pre><code>#!/bin/bash
 | 
			
		||||
cd 
 | 
			
		||||
ls
 | 
			
		||||
if [ -e sample.sh ] 
 | 
			
		||||
then 
 | 
			
		||||
 echo "file exists!" 
 | 
			
		||||
else 
 | 
			
		||||
 echo "file does not exist" 
 | 
			
		||||
fi</code></pre></section>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		         <section>
 | 
			
		||||
		        	<h4>if then elif</h4>
 | 
			
		||||
		        	<img src="img/2_if_then_elif_fi.svg">
 | 
			
		||||
		        </section>
 | 
			
		||||
		        <section><pre style="font-size: .35em"><code>#!/bin/bash
 | 
			
		||||
 cd
 | 
			
		||||
ls -l 
 | 
			
		||||
read -p "Enter a file name: " filename
 | 
			
		||||
if [ -e $filename ] 
 | 
			
		||||
then 
 | 
			
		||||
 echo "file exists!" 
 | 
			
		||||
 if [ -r $filename ]
 | 
			
		||||
 then 
 | 
			
		||||
      status="readable " 
 | 
			
		||||
 fi 
 | 
			
		||||
 if [ -w $filename ] 
 | 
			
		||||
 then 
 | 
			
		||||
      status=$status"writable " 
 | 
			
		||||
 fi 
 | 
			
		||||
 if [ -x $filename ] 
 | 
			
		||||
 then 
 | 
			
		||||
      status=$status"executable" 
 | 
			
		||||
 fi 
 | 
			
		||||
  echo "file permission: "$status 
 | 
			
		||||
else 
 | 
			
		||||
 echo "file does not exist" 
 | 
			
		||||
fi</code></pre></section>
 | 
			
		||||
		        <section>
 | 
			
		||||
		        	<h4>for loop</h4>
 | 
			
		||||
		        	<img src="img/for.svg">
 | 
			
		||||
		        </section>
 | 
			
		||||
		        <section><pre><code>#!/bin/bash
 | 
			
		||||
for f in {1..9}
 | 
			
		||||
do
 | 
			
		||||
	touch "$f xx.txt"
 | 
			
		||||
done</code></pre></section>
 | 
			
		||||
		        <section>
 | 
			
		||||
		        	<h4>case</h4>
 | 
			
		||||
		        	<img src="img/3_case_var.jpg">
 | 
			
		||||
		        </section>
 | 
			
		||||
		        <section><pre style="font-size: .35em"><code>#!/bin/bash 
 | 
			
		||||
 clear 
 | 
			
		||||
 read -p "Integer1: " int1 
 | 
			
		||||
 read -p "Integer2: " int2 
 | 
			
		||||
 printf "Menu: \n[a] Addition\n[b]Subtraction\n[c]Multiplication\n[d]Division\n" 
 | 
			
		||||
 echo "======================" 
 | 
			
		||||
 read -p "Your choice: " choice 
 | 
			
		||||
 res=0 
 | 
			
		||||
 case $choice in 
 | 
			
		||||
	 a) 
 | 
			
		||||
	     res=$((int1+int2)) 
 | 
			
		||||
	 ;; 
 | 
			
		||||
	 b) 
 | 
			
		||||
	     res=$((int1-int2)) 
 | 
			
		||||
	 ;; 
 | 
			
		||||
	 c) 
 | 
			
		||||
	     res=$((int1*int2)) 
 | 
			
		||||
	 ;; 
 | 
			
		||||
	 d) 
 | 
			
		||||
	     res=$((int1/int2)) 
 | 
			
		||||
	 ;; 
 | 
			
		||||
	 *) 
 | 
			
		||||
	     echo "Invalid input" 
 | 
			
		||||
 esac 
 | 
			
		||||
 echo "The result is: " $res</code></pre></section>
 | 
			
		||||
		        <section>
 | 
			
		||||
		        	<h4>while loop</h4>
 | 
			
		||||
		        	<img src="img/4_while.svg">
 | 
			
		||||
		        </section>
 | 
			
		||||
		        <section><pre><code>#!/bin/bash
 | 
			
		||||
x=1
 | 
			
		||||
while [ $x -le 5 ]
 | 
			
		||||
do
 | 
			
		||||
  echo "Welcome $x times"
 | 
			
		||||
  x=$(( $x + 1 ))
 | 
			
		||||
done</code></pre></section>
 | 
			
		||||
		         <section>
 | 
			
		||||
		        	<h4>until loop</h4>
 | 
			
		||||
		        	<img src="img/until.svg">
 | 
			
		||||
		        </section>
 | 
			
		||||
		        <section><pre><code>#!/bin/bash
 | 
			
		||||
i=1
 | 
			
		||||
until [ $i -gt 6 ]
 | 
			
		||||
do
 | 
			
		||||
	echo "Welcome $i times."
 | 
			
		||||
	i=$(( i+1 ))
 | 
			
		||||
done</code></pre></section>
 | 
			
		||||
				<section><h3>while vs until</h3>
 | 
			
		||||
					<ol>
 | 
			
		||||
						<li>until läuft bis Bedingung nicht 0  (false)</li>
 | 
			
		||||
						<li>while läuft bis Bedingung 0 (true)</li>
 | 
			
		||||
						<li>until läuft mind. einmal</li>
 | 
			
		||||
					</ol>
 | 
			
		||||
				</section>
 | 
			
		||||
		      
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user