@database Lernen.Guide
@master Lernen.Guide
@$VER: 1.1
@author "bug of x-act"
@(c) "1995"

@node "Main" "Lernen"
 LERNEN.GUIDE


                          @{"Allgemeine Hinweise    " link "hinweise" 0}

                          @{"interne Befehle        " link "intern" 0}
                          @{"Windows-Merkmale       " link "win" 0}
                          @{"Namensmuster           " link "namen" 0}
                          @{"Befehlszeilenzeichen   " link "bzz" 0}
                          @{"Umleitungen            " link "Umleitungen" 0}
                          @{"Bedingungskennzeichen  " link "bedingung" 0}
                          @{"Escape-Sequencen       " link "escape" 0}
                          @{"Tips&Tricks            " link "tt" 0}
                          @{"Komplexbeispiele       " link "beispiele" 0}
                          @{"OnLine - Hilfe         " link "olh" 0}

                          @{"Printerprefs für Text  " system "newcli window=con:5/12/640/50/Printerprefs_Text/Close from Uebungen:Texte/prttxt"}
                          @{"Printerprefs für Grafik" system "newcli window=con:5/12/630/50/Printerprefs_Gfx/Close from Uebungen:Texte/prtgfx"}
@endnode

@node "hinweise" "Allgemeine Hinweise"
 Allgemeine Hinweise

 Dieses Guide ist selbständig lauffähig und benötigt nicht extra das
 AmigaDos.Guide. Soll das Lernen.Guide vom AmigaDos.Guide aus gestartet
 werden muß es sich im gleichen Verzeichnis wie AmigaDos.Guide befinden.

 Besitzer nur eines Diskettenlaufwerkes sollten ein Assign auf die Diskette
 machen, wo sich Lernen.Guide befindet, um häufiges Diskettenwechseln zu
 vermeiden.

 -> @{"Assign Kickstart 1.3    " system "newcli window=con:5/12/630/220/Assign_Disk/Close from uebungen:Texte/AssignDisk1"}

 -> @{"Assign Kickstart 2.X/3.X" system "newcli window=con:5/12/630/220/Assign_Disk/Close from uebungen:Texte/AssignDisk2"}
@endnode

@node "intern" "Interne Befehle im Überblick"
 Interne Befehle im Überblick

 KS1.3

   ALIAS

 KS2.X/3.X

   ALIAS
   ASK
   CD
   ECHO
   ELSE
   ENDCLI
   ENDSHELL
   ENDIF
   ENDSKIP
   FAILAT
   GETENV
   IF
   LAB
   PATH
   PROMPT
   QUIT
   RESIDENT
   SETENV
   SKIP
   STACK
   WHY
@endnode

@node "win" "Window-Merkmale"
 *** Window-Merkmale *** by bug of x-act

 Form     : <WINDOW=>CON:x/y/Breite/Höhe/Titel/Option

   x      : Anzahl der Bildpunkte vom linken Bildschirmrand bis zum linken
            Fensterrahmen.
   y      : Anzahl der Bildpunkte vom oberen Bildschirmrand bis zum oberen
            Fensterrahmen.
   Breite : Fensterbreite in Bildpunkten.
   Höhe   : Fensterhöhe in Bildpunkten.
   Tilel  : Der Text, der im Titelbalken angezeigt wird.

 @{"Window=con:10/10/400/50/ohne_Option" system "newshell window=con:10/10/400/50/ohne_Option >NIL: from Uebungen:Texte/win"}

    Option : Mögliche Optionen:
     Auto     : Automatische Anzeige des Fensters, sobald eine Eingabe
                erforderlich ist, oder ein Programm eine Information
                ausgibt.

 @{"Window=con:20/20/410/60/Auto-Option/Auto" system "newshell window=con:20/20/410/60/Auto-Option/Auto from Uebungen:Texte/win"}

     Close    : Das Fenster besitzt alle Standardsymbole, inclusive
                Schließsymbol.

 @{"Window=con:30/30/420/70/Close-Option/Close" system "newshell window=con:30/30/420/70/Close-Option/close from Uebungen:Texte/win"}

     Backdrop : Hintergrundfenster, daß nur das Zoom-Symbol besitzt.

 @{"Window=con:40/40/430/80/Backdrop-Option/Backdrop" system "newshell window=con:40/40/430/80/Backdrop-Option/Backdrop from Uebungen:Texte/win"}

     Noborder : Seitenrahmen und oberer Abschlußrahmen fehlen. Das
                Fenster besitzt die Symbole Zoom, Vorder-/Hintergrund und
                Größe.

 @{"Window=con:50/50/440/90/Noborder-Option/Noborder" system "newshell window=con:50/50/440/90/Noborder-Option/Noborder from Uebungen:Texte/win"}

     Nodrag   : Fenster kann nicht gezogen werden. Es fehlt das Schließ-
                symbol.

 @{"Window=con:60/60/450/100/Nodrag-Option/Nodrag" system "newshell window=con:60/60/450/100/Nodrag-Option/Nodrag from Uebungen:Texte/win"}

     Nosize   : Das Fenser besitzt nur das Vorder-/Hintergrund-Symbol.

 @{"Window=con:70/70/460/110/Nosize-Option/Nosize" system "newshell window=con:70/70/460/110/Nosize-Option/Nosize from Uebungen:Texte/win"}

     Screen   : Das Fenster wird auf dem gemeinsamen Bildschirm (Public
                Screen) geöffnet.

 @{"Window=con:80/80/470/120/Screen-Option/Screen" system "newshell window=con:80/80/470/120/Screen-Option/Screen from Uebungen:Texte/win"}

     Simple   : Bei Vergrößerung des Fensters paßt sich der Text an.

 @{"Window=con:90/90/480/130/Simple-Option/Simple" system "newshell window=con:90/90/480/130/Simple-Option/Simple from Uebungen:Texte/Win"}

     Smart    : Bei Vergrößerung des Fensters paßt sich der Text nicht an.

 @{"Window=con:100/100/490/140/Smart-Option/Smart" system "newshell window=con:100/100/490/140/Smart-Option/Smart from Uebungen:Texte/win"}

     Wait     : Fenster kann nur durch Anklicken des Schließsymbols
                geschlossen werden.

 @{"Window=con:110/110/500/150/Wait-Option/Wait" system "newshell window=con:110/110/500/150/Wait-Option/Wait from Uebungen:Texte:win"}

     Window   : Eingabe einer hexadezimalen Adresse eines bereits
                geöffneten Intuition-Fensters.

 Bemerkung: Es ist darüber hinaus möglich, einem Fenster mehrere Eigen-
 schaften zu geben z.B.
 1> newcli window=con:0/0/640/200//nosize/noclose/nodepth/noborder
@endnode

@node "namen" "Namensmuster"
 *** Namensmuster *** by bug of x-act

 Namensmuster erlauben es, Dateinamen mit Jokerzeichen zu spezifizieren.
 Verwendet werden sie beispielsweise bei Befehlen wie
 copy, delete, dir, list, protect, rename, search

 ? - Einzelnes Zeichen.

 dir df0:Texte/sysinfos?

   Suche nach allen Dateien, mit sysinfos beginnend, mit einem beliebigen
   Buchstaben enden.

 dir df0:Texte/s??infos?

   Suche nach allen Dateien, mit s beginnen, zwei beliebige Buchstaben
   besitzen, und beliebig enden.

 dir df0:Texte/???

   Suche nach allen Befehlen mit drei Buchstaben Länge.



 #<p> - Bedeutet, daß <p> Null bis n mal vorkommt.

 dir df0:c/set#?
 list df0:c/set#?

   Suche nach allen Befehlen, die mit set beginnen und beliebig enden.

 dir df0:c/s#?t#?

   Suche nach allen Befehlen, die mit s beginnen, zwischendurch ein
   t haben und beliebig enden.

 dir df0:#?.info

   Suche nach allen Dateien mit der Endung .info.



 <p1>|<p2> -  Stimmt überein, wenn <p1> oder <p2> übereinstimmen.

 dir df0:Texte/sysinfos(1|2|3)

   Suche nach allen Dateien die mit sysinfos beginnen und mit 1 oder 2
   oder 3 enden.

 dir df0:Texte/sys#?(3|4)

   Suche nach allen Dateien die mit sys beginnen, beliebig dazwischen
   aussehen und mit 3 oder 4 enden.



 ~<p> - Stimmt mit allem außer <p> überein.

 List ~t#?

   Suche nach allen Dateien und Directories die nicht mit t beginnen
   und beliebig enden.

 list ~(#?n)

   Suche nach allen Dateien und Directories die nicht mit n enden.



 (<p1><p2>...) Gruppiert Elemente zusammen.

   Beispiel siehe oben.



 % Stellt die Null-Zeichenfolge dar.

 dir t(r|%)#?.info

   Suche nach den Files, die mit t beginnen, an zweiter Stelle beliebig
   sind und mit .info enden.



 [<p>-<p>]     Begrenzt einen Zeichenbereich.

 List [AA-K]

   Suche nach den Dateien und Directories, die am Anfang mit AA, B ...
   K beginnen.



 [<p1>-<p2>] Stimmt mit allen Zeichen im Alphabet zwischen
             <p1> und <p2> überein.

 list [A-F]#?

   Suche nach den Dateien und Directories, die mit A, B, C, D, E oder
   F beginnen.

 list #?[A-C]

   Suche nach den Dateien und Directories, die auf A, B oder C enden.



 ' Hebt die Sonderfunktion des folgenden Jokerzeichens auf.

 @{"Start Script" system "newcli window=con:5/12/630/200/Namensmuster/Close from Uebungen:Texte/Namen"}
 @{"Show Script " system "run Uebungen:utilities/more uebungen:Texte/Namen"}
 @{"Print Script" system "type Uebungen:Texte/Namen >prt:"}
@endnode

@node "bzz" "Befehlszeilenzeichen"
 Befehlszeilenzeichen



                            @{"Doppelpunkt   (:)" link "doppelpunkt" 0}
                            @{"Schrägstrich  (/)" link "schraegstrich" 0}
                            @{"Semikolon     (;)" link "semikolon" 0}
                            @{"Sternchen     (*)" link "sternchen" 0}
                            @{"Backtick      (`)" link "backtick" 0}
                            @{"Plus          (+)" link "plus" 0}
                            @{"Fragezeichen  (?)" link "frz" 0}
@endnode

@node "umleitungen" "Umleitungen"
 *** Umleitungen *** by bug of x-act

 Mit den beiden Klammern < und > können Befehlsein-und ausgaben an ein
 anderes Ziel umgeleitet werden.
 Befehlsein-und Ausgaben finden z.B bei Befehlen, wie Dir, List, Copy,
 Type u.a statt.
 Der Sonderfall * wird hier nur noch einmal erwähnt.

 Failat 21

 ask "*e[32mIst ein Drucker am Parallelport angeschlossen (y/n) ?*e[0m"
 if warn
   copy Uebungen:Texte/Umleitung >prt:
 endif

   >prt: Drucker.

 ask "*e[32mIst ein Drucker am Seriellport angeschlossen (y/n) ?*e[0m"
 if warn
   copy Uebungen:Texte/Umleitung >ser:
 endif

   >ser: Serielle Schnittstelle.

 ask "*e[32mSoll ein Text gesprochen werden (y/n) ?*e[0m"
 if warn
   copy Uebungen:Texte/*1 >speak:
 endif

   >speak: Sprachausgabe.

 type Uebungen:Texte/*1 >ram:Text
 ed ram:Text
 delete ram:text

   >Datei Umleitung in eine Datei.

 copy Uebungen:Texte/*1 ram:*1 >NIL:
 echo "Kopie erfolgreich"
 delete ram:*1 >NIL:
 echo "Datei wieder gelöscht"

   >NIL: Nirvana.

 date <Datum ?

   <Datei  Inhalt von Datei als Argument.

 copy Uebungen:Texte/win *

   * Bildschirm.

 type Uebungen:Texte/win >con:5/5/630/90/Schließen_mit_Ctrl\/wait

   >con: Bildschirm.

 echo "*e[32mWeiter mit Return-Taste"
 echo ? >NIL:
 endcli

 @{"Start Script" system "newshell window=con:5/12/630/200/Umleitung/Close from Uebungen:Texte/Umleitung"}
 @{"Show Script " system "run uebungen:utilities/more uebungen:Texte/umleitung"}
 @{"Print Script" system "type uebungen:Texte/Umleitung >prt:"}
@endnode

@node "bedingung" "Bedingungskennzeichen"
 *** Bedingungskennzeichen *** by bug of x-act

 Jeder Befehl legt ein Bedingungskennzeichen (Rückgabewerte) fest.

  0-4   Erfolgreiche Ausführung.
  5-9   Warnung, daß ein Fehler gefunden wurde, der nicht so
        schwerwiegend ist. eine Befehlsdatei wird nicht abgebrochen
        (IF WARN).
 10-19  Fehler. Eine Befehlsdatei wird abgebrochen (IF ERROR).
 >=20   Mißerfolg (IF FAIL).

 Das bekannteste Beispiel dürfte in Verbindung mit dem ASK-Befehl stehen

 ask "Sind Sie sich sicher (y/n) ?"
 if warn ;falls y-Taste
  echo "y-Taste betätigt"
 else
  echo "n-Taste betätigt"
 endif

 Beim Befehl FAILAT wird der entsprechende Rückgabewert verwendet, der
 maximal ignoriert werden soll.
 Der Copy-Befehl gibt bei einem Fehler den Return-Code 20 zurück. Soll
 die Befehlsdatei trotz mißglücktem kopieren fortgesetzt werden, muß
 stehen:

 Failat 21
 copy df0:s/userstart ram:neustart ;userstart existiert nicht

 if fail
  echo "Datei nicht kopiert"
 endif

 @{"Start Script" system "newcli window=con:5/12/630/100/Bedingungskennzeichen/Close from Uebungen:Texte/Fehler"}
 @{"Show Script " system "run uebungen:utilities/more uebungen:Texte/Fehler"}
 @{"Print Script" system "type uebungen:Texte/Fehler >prt:"}
@endnode

@node "escape" "Escape-Sequencen"
 *** Escape-Sequenzen *** by bug of x-act

 Hier werden die standardmäßigen Escape-Sequencen für das Konsolen-
 fenster gezeigt.
 Hier wird ausschließlich der Echo-Befehl verwendet, um zu zeigen,
 was alles mit einem einzigen Befehl alles möglich ist
 Escape-Sequenzen können auch in anderen Befehlen verwendet werden,
 wie ASK, Prompt.

 echo "*ec"

   Escc Fenster löschen, zurücksetzen aller Modi auf die Vorgabe.

 echo "e[0m*e[0m Standardmodus"

   Esc[0m Stellt Grafikmodus auf die Vorgabe ein.

 echo "e[1m*e[1m Fettdruck*e[0m"

   Esc[1m Fettdruck.

 echo "e[3m*e[3m Kursiv*e[0m"

   Esc[3m Kursiv.

 echo "e[4m*e[4m Unterstrichen*e[0m"

   Esc[4m Unterstrichen.

 echo "e[7m*e[7m Invers*e[0m"

   Esc[7m Invers.

 echo "e[8m*e[8m Text in Hintergrundfarbe*e[0m"

   Esc[8m Text in Hintergrundfarbe.

 echo "e[1m*e[1m Fettdruck an                e[22m*e[22m Fettdruck aus"

   Esc[22m Fettdruck aus.

 echo "e[3m*e[3m Kursiv ein                  e[23m*e[23m Kursiv aus"

   Esc[23m Kursiv aus.

 echo "e[4m*e[4m Unterstrichen ein           e[24m*e[24m Unterstrichen aus"

   Esc[24m Unterstrichen aus.

 echo "e[7m*e[7m Invers ein                  e[27m*e[27m Invers aus"

   Esc[27m Invers aus.

 echo "e[28m*e[28m Zurück zur normalen Textfarbe"

   Esc[28m Zurück zur normalen Textfarbe.

 echo "e[30m*e[30m Text in Farbe 0*e[0m"

   Esc[30m Text in Farbe 0.

 echo "e[31m*e[31m Text in Farbe 1*e[0m"

   Esc[31m Text in Farbe 1.

 echo "e[32m*e[32m Text in Farbe 2*e[0m"

   Esc[32m Text in Farbe 2.

 echo "e[33m*e[33m Text in Farbe 3*e[0m"

   Esc[33m Text in Farbe 3.

   Esc[3#m Text in Farbe # (4-8).

 echo "e[39m*e[39m Text in Vorgabe-Farbe*e[0m"

   Esc[39m Text in Vorgabe-Farbe.

 echo "e[40m*e[40m Text vor Hintergrundfarbe 0*e[0m"

   Esc[40m Text vor Hintergrundfarbe 0.

 echo "e[41m*e[41m Text vor Hintergrundfarbe 1*e[0m"

   Esc[41m Text vor Hintergrundfarbe 1.

 echo "e[42m*e[42m Text vor Hintergrundfarbe 2*e[0m"

   Esc[42m Text vor Hintergrundfarbe 2.

 echo "e[43m*e[43m Text vor Hintergrundfarbe 3*e[0m"

   Esc[43m Text vor Hintergrundfarbe 3.

   Esc[4#m Text vor Hintergrundfarbe # (4-8).

 echo "e[49m*e[49m Text vor Hintergrund in der Vorgabe-Farbe*e[0m"

   Esc[49m Text vor Hintergrund in der Vorgabe-Farbe.

 echo "*e[32mWeiter mit Return-Taste*e[0m"
 echo ? >NIL:
 echo "*ec" noline
 echo "e[30u*e[30u Maximale Zeilenlänge im Fenster neu: 30*e[80u"

   Esc[#u  Maximale Zeilenlänge im Fenster neu: #.

 echo "*e[32mWeiter mit Return-Taste*e[0m"
 echo ? >NIL:
 echo "*ec" noline
 echo "e[5t*e[5t Höchstzahl der Zeilen im Fenster neu: 5"
 echo "Zeile2 *NZeile 3 *NZeile 4"
 echo "e[25t*e[25t Höchstzahl der Zeilen im Fenster neu: 25"
 echo "*e[32mWeiter mit Return-Taste*e[0m"
 echo ? >NIL:
 echo "*ec" noline

   Esc[#t  Höchstzahl Zeilen im Fenster neu: #.

 echo "*e[20xe[20x Textbeginn 20 Pixel vom linken Fensterrand entfernt"
 echo "*e[40xe[40x Textbeginn 40 Pixel vom linken Fensterrand entfernt"
 echo "*e[60xe[60x Textbeginn 60 Pixel vom linken Fensterrand entfernt"
 echo "*e[80xe[80x Textbeginn 80 Pixel vom linken Fensterrand entfernt"
 echo "*e[100xe[100x Textbeginn 100 Pixel vom linken Fensterrand entfernt"
 echo "*e[3x"
 echo "*e[32mWeiter mit Return-Taste*e[0m"
 echo ? >NIL:
 echo "*ec" noline

   Esc[#x  Textbeginn # Pixel vom linken Fensterrand entfernt.

 echo "*e[20ye[20y Textbeginn 20 Pixel vom oberen Fensterrahmen entfernt"
 echo "*e[32mWeiter mit Return-Taste*e[0m"
 echo ? >NIL:
 echo "*e[11y"
 echo "*ec" noline
 echo "*e[40ye[40y Textbeginn 40 Pixel vom oberen Fensterrahmem entfernt"
 echo "*e[32mWeiter mit Return-Taste*e[0m"
 echo ? >NIL:
 echo "*e[11y"
 echo "*ec" noline
 echo "*e[80ye[80y Textbeginn 80 Pixel vom oberen Fensterrahmen entfernt"
 echo "*e[32mWeiter mit Return-Taste*e[0m"
 echo ? >NIL:
 echo "*e[11y"
 echo "*ec" noline

   Esc[#y  Textbeginn # Pixel vom oberen Fensterrahmen entfernt.

 echo "*e[32mWeiter mit Return-Taste*e[0m"
 echo ? >NIL:
 endcli

 @{"Start Script" system "newshell window=con:0/0/640/200/Escape/Smart from Uebungen:Texte/escape"}
 @{"Show Script " system "run uebungen:utilities/more uebungen:Texte/escape"}
 @{"Print Script" system "type uebungen:Texte/escape >prt:"}
@endnode

@node "tt" "Tips&Tricks"
 Tips&Tricks

                           @{"Alias - Tips        " link "talias" 0}
                           @{"Avail - Tips        " link "tavail" 0}
                           @{"Copy - Tips         " link "tcopy" 0}
                           @{"Date - Tips         " link "tdate" 0}
                           @{"Echo - Tips         " link "techo" 0}
                           @{"FastFont (FF) - Tips" link "tff" 0}
                           @{"IconX - Tips        " link "ticonx" 0}
                           @{"Prompt - Tips       " link "tprompt" 0}
                           @{"Rename - Tips       " link "trename" 0}
                           @{"Type - Tips         " link "ttype" 0}
@endnode

@node "beispiele" "Komplexbeispiele"
 Komplexbeispiele

                           @{"Sysinfos1         " link "sysinfos1" 0}
                           @{"Sysinfos2         " link "sysinfos2" 0}
                           @{"Sysinfos3         " link "sysinfos3" 0}
                           @{"Sysinfos4         " link "sysinfos4" 0}
                           @{"Sysinfos5         " link "sysinfos5" 0}
                           @{"Verzeichniswechsel" link "verzeichnis" 0}
@endnode

@node "olh" "OnLine Hilfe"
 *** OnLine Hilfe für AmigaDos *** by bug of x-act

 Wie schön wäre es, wenn eine online-Hilfe zur Verfügung stehen würde,
 die man selber erstellen bzw erweitern könnte, ohne große
 Programmiererfahrung haben zu müssen.
 An dieser Stelle möchte ich ein paar Varianten zeigen, wie sie
 mittels AmigaDos-Befehlen zu realisieren ist.
 Dazu benötigen wir die Hilfetexte in Uebungen:Help und Helps, den Text-
 anzeiger MORE oder den TYPE-Befehl, und den ALIAS-Befehl.
 Der ALIAS-Befehl dient dabei zur Generierung der Schlüsselworte
 help (ausführlicher Text) und helpk (Kurztext).

 alias help run system:utilities/more OLHilfe:help/[]

   alias help - das zukünftige Schlüsselwort heißt help.
   run sys:utilities/more - benutzt den MORE-Textanzeiger.
   Steht more in einem anderen Pfad, ist dieser zu verwenden.
   run - es wird ein neuer Prozeß gestartet. Damit hat more
   die Möglichkeit sein eigenes Fenster zu öffnen.
   Uebungen:help - hier sucht MORE seinen anzuzeigenden Text.
   [] - dient als Platzhalter zur Eingabe des anzuzeigenden
   Textes.

 help copy

   help steht für run sys:utilities/more Uebungen:help/[].
   copy ist der anzuzeigende Text der für [] verwendet wird.

 alias helpw system:utilities/more OLHilfe:help/[]

   Der Unterschied zum ersten Beispiel ist, daß MORE jetzt in der
   geöffneten Shell läuft.

 helpw copy

   helpw steht für sys:utilities/more Uebungen:help/[].
   copy ist der anzuzeigende Text der für [] verwendet wird.

 alias helps df0:c/type OLHilfe:helps/[]

   Statt more wird jetzt der TYPE-Befehl verwendet.
   Da mit dem TYPE-Befehl nicht geblättert werden kann, eignet er
   sich in unserem Beispiel nur für kurze Texte, die in Uebungen:
   Helps stehen.
   Ansonsten funktioniert das Ganze wie in den oben stehenden
   Beispielen.

 helps copy

   helps steht für df0:c/type OLHilfe:Helps/[].
   copy ist der anzuzeigende Text der für [] verwendet wird.

 Neben diesen Varianten ist es genauso möglich andere Textanzeiger zu
 verwenden z.B. ED, Most, Muchmore, Memacs ...

 Außerdem hat diese Form der Online-Hilfe noch den Vorteil, daß die
 Texte jederzeit austauschbar und erweiterbar sind.

 Damit die Online-Hilfe für jeden Shell-Prozeß zur Verfügung steht,
 empfiehlt es sich, die AILAS-Zeilen in die Shell-Startup im Ver-
 zeichnis s einzutragen.

 @{"Start Script" system "newshell window=con:5/12/630/180/OnLineHilfe/Close from Uebungen:Texte/OLHilfe"}
 @{"Show Script " system "run uebungen:utilities/more uebungen:Texte/OLHilfe"}
 @{"Print Script" system "type uebungen:Texte/OLHilfe >prt:"}
@endnode

@node "doppelpunkt" "Doppelpunkt"
 *** Doppelpunkt *** by bug of x-act

 Der Doppelpunkt wird nur nach Gerätenamen, Datenträgernamen bzw.
 zugewiesenen Verzeichnissen verwendet.
 Gerätenamen z.B. df0: df1: df2: df3: dh0: dh1: par: ser: prt: con: nil:
 Datenträgernamen z.B. System: Work: Workbench1.3D: Workbench2.0:
 zugewiesene Verzeichnisse z.B. Sys: C: Libs: Fonts:

 Verwendung findet er dort, wo auch die Namen benötigt werden
 z.B copy, delete, dir, rename, list, diskcopy, type, ed ...

 cd df0:

   Wechsel zu df0:.

 dir df0:Texte

   Inhalt anzeigen von Texte.

 list ram: all

   Auflisten des Inhalts von Ram:.

 type df0:Texte/sysinfos1 > con:10/100/630/200//close/wait

   Verwendung in einer Umleitung.

 @{"Start Script" system "newshell window=con:5/12/630/200/Doppelpunkt/Close from Uebungen:Texte/Doppelpunkt"}
 @{"Show Script " system "run uebungen:utilities/more uebungen:Texte/Doppelpunkt"}
 @{"Print Script" system "type uebungen:Texte/Doppelpunkt >prt:"}
@endnode

@node "schraegstrich" "Schrägstrich (/)"
 *** Schrägstrich *** by bug of x-act

 Schrägstriche werden zum Auseinanderhalten von Verzeichnis- und
 Dateinamen in einem Pfad verwendet.

 cd ram:t

   Verzeichniswechsel.

 list
 wait 2 sec
 echo "*ec"

 cd /

   Eine Ebene höher steigen.

 list
 wait 2 sec
 echo "*ec"

 cd Uebungen:Texte

   Verzeichniswechsel.

 list
 wait 2 sec
 echo "*ec"

 type Uebungen:Texte/SysInfos1

   Arbeit mit Dateinamen.

 echo "*e[32mWeiter mit Return-Taste"
 echo ? >NIL:
 endcli

 @{"Start Script" system "newshell window=con:5/12/630/200/Schraegstrich/Close from Uebungen:Texte/Schraegstrich"}
 @{"Show Script " system "run uebungen:utilities/more uebungen:Texte/Schraegstrich"}
 @{"Print Script" system "type uebungen:Texte/Schraegstrich >prt:"}
@endnode

@node "semikolon" "Semikolon (;)"
 *** Semikolon *** by bug of x-act

 Das Semikolon erlaubt das Hinzufügen von Kommentaren zu Befehlszeilen.
 Es ist ebenfalls erlaubt, Kommentare allein anzugeben.

 dir df0: ; Ab dem Semikolon wird alles als Kommentar ignoriert

 echo "Der Dir-Befehl wurde ausgeführt"

 ; list df0:

 echo "Der List-Befehl wurde nicht ausgeführt"

 ask "*e[33mBeispieldatei zeigen ?*e[0m" ;Warten auf Y oder N - Eingabe
   if warn
     type Uebungen:Texte/Semikolon ;Zeigt Text
   else
     echo "Datei wird nicht gezeigt"  ;Kommentar ohne Kommentar
   endif
   echo "*e[32mWeiter mit Return-Taste"
   echo ? >NIL:
   endcli
   ;Ende der Stapeldatei

 @{"Start Script" system "newshell window=con:5/12/630/240/Semikolon/Close from Uebungen:Texte/Semikolon"}
 @{"Show Script " system "run uebungen:utilities/more uebungen:Texte/Semikolon"}
 @{"Print Script" system "type uebungen:Texte/Semikolon >prt:"}
@endnode

@node "sternchen" "Das Sternchen (*)"
 *** Sternchen (*) *** by bug of x-act

 Mit dem Sternchen wird auf das aktuelle Fenster verwiesen. Das Zeichen
 kann als From oder To-Argument oder als Umleitungsdateiname verwendet
 werden.
 Mit der Tastenkombination Ctrl\ kann gegebenenfalls auf die Vorgabe-
 quelle zurückgeschalten werden.
 Desweiteren kann das Sternchen ganz normal in einem Dateinamen vorkommen
 z.B.: *1. Außerdem dient das Sternchen als Einleitung von Escape-Sequencen
 z.B.: echo "*e[32m". In der letzten Möglichkeit der Verwendung des
 Sternchens kann eine in Anführungszeichen gesetzte Zeichenfolge selbst
 Anführungszeichen enthalten, wenn diese duch das Sternchen eingeleitet
 werden.

 Echo "*e[32m*"Anführungszeichen in der Echo-Anweisung*"*e[0m"

 Copy Uebungen:Texte/*1 *
 echo "*e[32m"
 Copy Uebungen:Texte/SysInfos1 *

   Ersatz für den Typebefehl 1>type Uebungen:Texte/SysInfos1.
   Die Kopie wird hier in das aktuelle Fenster vorgenommen.

 echo "*e[0m"
 Copy Uebungen:Texte/*2 *
 echo "*e[32m"
 Copy * *

   Kopiert ein Fenster auf sich selbst.

 echo "*e[0m"
 Copy Uebungen:Texte/*3 *
 echo "*e[32m"
 Copy * ram:neu

   Kopiert alle Eingabe in eine Datei.
   Das Gleiche funktioniert auch mit 1> type * ram:neu.

 echo "*e[33m"
 copy ram:neu *
 echo "*e[0m"

   Zeigt, was in der Datei steht.

 echo "*e[0m"
 Copy Uebungen:Texte/*4 *
 echo "*e[32m"
 sort Uebungen:Texte/SysInfos1 *

   Sortiert die Datei und gibt das Resultat auf dem Bildschirm aus.

 echo "*e[0m"
 echo "Weiter mit Return-Taste"
 echo ? >NIL:
 endcli

 @{"Start Script" system "newshell window=con:5/12/630/240/Sternchen/Close from Uebungen:Texte/Stern"}
 @{"Show Script " system "run uebungen:utilities/more uebungen:Texte/Stern"}
 @{"Print Script" system "type uebungen:Texte/Stern >prt:"}
@endnode

@node "backtick" "Backtick (`)"
 *** Backtick (`) *** by bug of x-act

 Das umgekehrte Apostroph (Backtick) dient dazu, Befehle innerhalb
 einer Zeichenfolge auszuführen. Dazu wird zeitweilig eine Unter-Shell
 geöffnet und der Befehl abgearbeitet. Das bedeutet, daß alle Verweise
 auf das aktuelle Verzeichnis sich auf die Unter-Shell beziehen.

 echo "`type df0:Texte/sysinfos1` type beendet"

   Der Type-Befehl wird aufgerufen und der Text geladen.
   Nach Anzeige des Textes wird eine Meldung ausgegeben.

 ask "`ed Uebungen:Texte/SysInfos1` Soll die Datei ausgeführt werden ?"
 if warn
  newshell window=con:5/110/630/240/SI1/close from Uebungen:Texte/SysInfos1
 endif

   Sinnvolle Verwendung in einer Befehlsdatei.

 Es gäbe vielleich noch ein paar ordentliche Anwendungsmöglichkeiten,
 aber spätestens nach den beiden folgenden Beispielen sollte man
 sich den Einsatz des Backtick genau überlegen.

 echo "*e[32mInhaltsverzeichnis dir*e[0m`dir`"

 echo "*e[32mInhaltsverzeichnis list*e[0m`list`"

 Hinweise: Es können für dieses Spielchen nicht alle Befehle verwendet
 werden. So versagte more fast immer so schlimm, daß der Prozeß, in dem
 more gerade aktiv war, ins Jenseits befördert wurde.

 echo "*e[32mWeiter mit Return-Taste"
 echo ? >NIL:
 endcli

 @{"Start Script" system "newshell window=con:5/12/630/200/Backtick/Close from Uebungen:Texte/Backtick"}
 @{"Show Script " system "run uebungen:utilities/more uebungen:Texte/Backtick"}
 @{"Print Script" system "type uebungen:Texte/Backtick >prt:"}
@endnode

@node "plus" "Das Plus (+) Zeichen"
 *** Das + (Plus)-Zeichen *** by bug of x-act

 Wenn hinter einigen AmigaDos-Befehlen ein + Zeichen steht,
 wird zuerst der Befehl geladen und dann auf einen
 Tastendruck mit der Taste Return gewartet.
 Das + Zeichen ist besonders für diejenigen interessant,
 die nur ein Laufwerk ihr eigen nennen.

 Das + Zeichen arbeitet mit allen Befehlen zusammen. Es ist jedoch die
 Frage, wie sinnvoll das Ganze ist.
 Das Zeichen muß immer an letzter Stelle der Befehlszeile stehen.
 Die Befehle können mit allen Optionen verwendet werden.
 Hier einige sinnvolle Beispiele

 Dir df0: +

   Es kann von jeder beliebigen Diskette in df0: das Hauptverzeichnis
   angezeigt werden.

 Dir df0:c +

   Anzeige des c-Verzeichnisses einer beliebigen Diskette in df0:.

 dir df0: files +

   Das Beispiel zeigt die Verbindung mit einer Option.

 list df0: files +

 list df0:c files nohead +

 list df0:c/a#? files nohead +

 list df0:c/a#? files nohead >ram:Liste +

   Diese Beispiele sollen eine mögliche Komplexität zeigen,
   die möglich ist.
   Selbst einer Umleitung `>ram:Liste` steht dabei nichts im Wege

 copy df0:c/assign df0:c +

   Kopieren von df0: nach df0:.

 ed df0:s/startup-sequence +

   Aufruf einer Textdatei einer beliebigen Diskette in df0:.

 type df0:s/startup-sequence +

   Anzeige einer beliebigen Textdatei.
   Das sollte erstmal als kleine Übung genügen.
   Die zweite Variante für das + Zeichen wird jetzt im Anschluß
   erläutert.

 Zur zweiten Variante ist zu sagen, daß es möglich ist zuerst zwei
 unterschiedliche Befehle nacheinander einzugeben und sie dann
 hintereinander zu starten.

   1> run list df0:c >ram:liste + ; df0:ed ram:liste

   Das wäre ein Beispiel für die Shell.
   Nach der ersten Zeile wartet die Shell wie gewohnt auf ein Return um
   loslegen zu können.
   Statt diesem Return wird die zweite Zeile eingegeben und dann erst die
   Return-Taste betätigt.
   Das Ganze funktioniert allerdings nur korrekt, wenn in der ersten Zeile
   ein neuer Prozeß mit dem Run-Befehl gestartet wurde.
   Bei meinen Versuchen zeigte sich, daß lange nicht alle Befehle für
   diese Spielerei zu haben sind.
   Die meisten Befehle verweigern einfach ihre Arbeit.

 @{"Start Script" system "newshell window=con:5/12/630/200/PlusZeichen/Close from Uebungen:Texte/Plus"}
 @{"Show Script " system "run uebungen:utilities/more uebungen:Texte/Plus"}
 @{"Print Script" system "type uebungen:Texte/Plus >prt:"}
@endnode

@node "frz" "Das Fragezeichen (?)"
 *** Das ? Zeichen *** by bug of x-act

 Das Fragezeichen hat zwei Bedeutungen.
 Zum einen ruft es die Hilfe für die Befehle auf und zum
 anderen dient es als Jokerzeichen für ein einzelnes Zeichen.

 AmigaDos-Hilfe
 Beispiele

 dir ?
 List ?
 status ?

   Folgende Varianten an Ausgaben wären möglich:
   DIR,
   Name,
   OP,
   PASSKEY
        Steht ein einzelnes Wort getrennt durch zwei Kommas,
        bedeutet das, daß bestimmte Optionen ohne Verwendung eines
        Schlüsselwortes angegeben werden dürfen. Dabei sagt das
        entsprechende Wort schon aus, um welche Art von Optionen
        es sich dabei handelt.
   EXISTS/S
        EXISTS ist das Schlüsselwort, S besagt, daß kein Parameter
        angegeben werden muß, ist optional.
   FROM/A
        FROM ist das Schlüsselwort, A besagt, daß die Eingabe des
        Schlüsselwortes zwingend notwendig ist.
   SIZE/N
        SIZE ist das Schlüsselwort, N besagt, daß die Eingabe (der
        Parameter) numerisch zu sein hat.
   FILE/M
        FILE ist das Schlüsselwort, M besagt, daß eine Aufzählung
        möglich ist.
   DEVICE/K
        DEVICE ist das Schlüsselwort, K besagt, daß ein Dateiname
        bzw. ein Pfad oder Argument verwendet werden muß, Schlüsselwort
        und Argument gehören zusammen, sind aber optional.
   DEVICE=DRIVE/A
        DEVICE und DRIVE sind die Schlüsselworte. Dabei kann ent-
        weder DEVICE oder DRIVE verwendet werden.
   Bei der Angabe Schlüsselwort/Buchstabe werden in der Eingabezeile
   Schlüsselwort und Buchstabe durch ein Leerzeichen getrennt.

   Wird die Hilfe genutzt, können nach Ausgabe der Hilfe auf dem
   Bildschirm Optionen eingegeben werden, die dann genutzt werden.

   1> dir ?
   DIR,OPT/K,ALL/S,DIRS/S,FILES/S,INTER/S: dirs inter
   |       das ist der Hilfetext          |das sind die Optionen

   Desweiteren ergibt sich die Möglichkeit beim Besitz von nur
   einem Laufwerk, Diskettenwechsel zu betreiben (siehe + Zeichen).
   1> df0:c/dir df0: ?
   DIR,OPT/K,ALL/S,DIRS/S,FILES/S,INTER/S: ;an dieser Stelle
   erfolgt der Diskettenwechsel, anschließend Returntaste drücken.

 Jokerzeichen

   siehe @{"Namensmuster" link "namen" 0}

 @{"Start Script" system "newshell window=con:5/12/630/200/Fragezeichen/Close from Uebungen:Texte/Fragezeichen"}
 @{"Show Script " system "run uebungen:utilities/more uebungen:Texte/Fragezeichen"}
 @{"Print Script" system "type uebungen:Texte/Fragezeichen >prt:"}
@endnode

@node "talias" "Tips zu Alias"
 *** Tips zu Alias *** by bug of x-act

 Alias cls echo "*ec" noline

   Ersatz für den Clear-Befehl in der Shell-Startup.
   Original: Alias Clear "Echo *"*E[0;0H*E[J*" ".
   Aufruf mit 1> cls.

 Alias del Delete

   Verkürzung der Schreibweise des Delete-Befehls.

 Alias tree dir [] all

   1.Variante eines Tree (Kleinweich-DOS)-Befehls.
   [] ist der Platzhalter für den Pfad.
   Eingabe wäre jetzt z.B.:1> tree df0:.

 Alias Tree list [] all

   2.Variante eines Tree (Mickrig-DOS)-Befehls.

 Für den Platzhalter [] können nicht nur die Devices
 und Pfade angegeben werden, sondern zusätzliche Optionen.
 z.B. 1> Tree df0: files
      1> tree df0: dirs nodates

 Alias endcli q

   Wer es satt hat, immer Endcli zu tippen, kann jetzt mit q und Return-
   Taste die Shell dichtmachen.

 Wer nur ein Laufwerk besitzt und ständig bestimmte DOS-Befehle benötigt,
 dem empfehle ich folgende Variante:

 copy c:dir|copy|list|delete ram:c
 alias dir ram:c/dir
 alias copy ram:c/copy
 alias list ram:c/list
 alias del ram:c/delete
@endnode

@node "tavail" "Tips zu Avail"
 *** Tips zu Avail *** by bug of x-act

 Avail flush

 Mit diesem Befehl ist es möglich, alle ungenutzten Bibliotheks- und
 Gerätetreibermodule aus dem Speicher zu entfernen (Erst ab KS2.X).

 Das ist noch nicht der Tip. Der Tip ist der, daß man sich auf seiner
 Workbench ein Icon anlegen sollte, unter Verwendung von ICONX
 und einer MINI-Befehlsdatei, deren Inhalt aus der Zeile AVAIL FLUSH
 besteht, um schnell und unkompliziert seinen Speicher zu säubern.

 Auf der Diskette Uebungen:IconX-Scripts befindet sich dieses Beispiel.
@endnode

@node "tcopy" "Copy - Tips"
 *** Tips zum COPY-Befehl *** by bug of x-act

 copy df0:c/Amigaguide ""

   Hier wir als Ziel "" angegeben.
   Als Ziel wird in diesem Fall das aktuelle Verzeichnis verwendet, indem
   man sich gerade befindet.

 copy df0:c/Amigaguide "":neu

   Als Ziel wird diesmal das aktuelle Verzeichnis verwendet, in der sich
   die Schublade `neu` befinden sollte. Existiert die Schublade nicht,
   wird der Copy-Befehl zum Makedir-Befehl und legt erst einmal die
   Schublade `neu` an; Folgendes ist auf dem Bildschirm zu sehen:
   1> cd ram: ;ich wechsle zur Ram Disk
   1> copy df0:c/Amigaguide "":neu
     :neu   [created]
     Amigaguide..copied.
   1>
   Das System funktionert auch genauso, wenn ich beispielsweise in einem
   Unterverzeichnis stehe z.B. ram:t.

 copy df0:c/amigaguide ram:neu

    Im Unterschied zum vorherigen Beispiel wird hier `Amigaguide`
    in die Ram Disk unter den Namen `neu` kopiert.

 copy df0:s/startup-sequence *

    Der Copy-Befehl als Ersatz für den Type-Befehl.
    Das Sternchen verweist auf das aktuelle Fenster. Somit wird die
    Datei in das aktuelle CLI- bzw Shell-Fenster kopiert.
    Es funktioniert mit jeder Art von Dateien.

 copy df0: df1: all

    Der Copy-Befehl als Optimizer.
    Voraussetzung ist, daß die Diskette in df1: formatiert ist.
    Der Trick ist, daß jede Datei nacheinander kopiert und in eine
    ordentliche Reihenfolge gebracht wird. Zeitersparnisse für eine
    Workbenchdiskette waren ca 4-6 sec.
    Wer kein zweites Laufwerk verfügt, kann auch über die Ram Disk
    gehen.
    1> copy df0: ram: all ;Diskettenwechsel
    1> copy ram: df0: all
@endnode

@node "Tdate" "Date - Tips"
 *** Tips zum Date-Befehl *** by bug of x-act

 Date >> s:Datum

   Eine mögliche Verwendung wäre in der Startup-sequence hinter der
   Setclock Load-Anweisung. Es wird festgehalten, wann der Computer
   das letztemal gebootet wurde.

 Soll ein laufendes Protokoll erstellt werden, ist wie folgt zu Verfahren:

 ED Bootdaten

   Hier wird einmalig eine Datei mit dem Namen Bootdaten angelegt. Dazu
   kann ein Kopftext erstellt werden z.B. Bootdaten ab 01.01.1995.
   Speichern der Datei.

 Date >> ram:datumneu
 copy s:Bootdaten ram:datumalt
 join ram:Datumalt ram:Datumneu to s:Bootdaten
 delete ram:datumalt ram:datumneu

   Diese Anweisungen sollten jetzt in der Startup-Sequence hinter Setclock
   Load eingetragen werden. Der Text Bootdaten kann mit jedem beliebigen
   Textanzeiger aufgerufen werden.
@endnode

@node "techo" "Tips zu Echo"
 *** Tips zu Echo *** by bug of x-act

 echo >>s:shell-startup "alias cls echo *ec noline"

   Der Echo-Befehl als eine Art Join-Befehl.
   Die Zeile "alias..." wird an die shell-startup angehängt.
   ab sofort steht nach dem Aufruf der Shell der Pseudo-Befehl cls zur
   Verfügung.
@endnode

@node "tff" "Fast Font - Tips"
 *** Tips zum FF-Befehl *** by bug of x-act

 ff topaz.font -0

   Mit dem FF-Befehl ist es nicht nur möglich, die Textausgabe zu be-
   schleunigen sondern einen selbstgewählten Font für die Work-
   bench zu nutzen. Der Font muß im Fonts-Verzeichnis sein, er muß vor
   dem LOADWB-Befehl in der startup-sequence stehen, und er sollte in
   einen der beiden Größen 8 und 9 vorhanden sein.
@endnode

@node "ticonx" "Tips zu IconX"
 *** Tips zu ICONX *** by bug of x-act

 In der Schublade IconX-Scripts befinden sich die hier besprochenen Tips

 ClearMem

 Wer mit vielen Programmen arbeitet, wird feststellen, daß sich der
 Arbeitsspeicher zunehmend verringert. Viele Programme benötigen
 Bibliotheken oder Gerätetreiber, die aber nach Beendigung des Programms
 im Speicher verbleiben, obwohl sie nicht mehr gebraucht werden.
 ClearMem beseitigt diese Bibliotheken und Gerätetreiber.

 @{"Start Script" system "newcli window=con:5/12/630/200/ClearMem/Close from Uebungen:IconX-Scripts/ClearMem"}
 @{"Show Script " system "run uebungen:Utilities/more uebungen:Iconx-Scripts/ClearMem"}
 @{"Print Script" system "type Uebungen:Iconx-scripts >prt:"}


 DriveTest

 Wer Überprüfen möchte, welche Geräte angeschlossen sind, kann das mit
 DriveTest machen. Es ist nur ein Beispielscript, der auf jeden Rechner
 angepaßt werden sollte.

 @{"Start Script" system "newcli window=con:5/12/630/200/DriveTest/Close from Uebungen:IconX-Scripts/DriveTest"}
 @{"Show Script " system "run Uebungen:Utilities/more uebungen:iconx-scripts/DriveTest"}
 @{"Print Script" system "type Uebungen:Iconx-scripts/DriveTest >prt:"}


 NewShell

 Wer auf seiner Diskette unbedingt Platz braucht, kann das Programm Newcli
 aus dem Verzeichnis c:, das Shell-Icon, das Icon und Programm CLI aus dem
 Verzeichnis System: löschen und ersetzt an Stelle des Shell-Icons den
 NewShell-Script samt Icon. Platzersparnis ca. 10K. Vergessen Sie nicht
 das "Programm" Shell zu löschen. Es ist zwar mit 0 Byte Größe angegeben,
 aber der Eintrag im Filesystem kostet trotzdem Platz.

 @{"Start Script" system "newcli window=con:5/5/200/50/NewShell/Close from Uebungen:iconx-scripts/newshell"}
 @{"Show Script " system "run uebungen:utilities/more uebungen:iconx-scripts/NewShell"}
 @{"Print Script" system "type uebungen:iconx-scripts/NewShell"}
@endnode

@node "tprompt" "Tips zu Prompt"
 *** Tips zu Prompt *** by bug of x-act

 prompt "*e[32m1> *e[0m"

   Ein farbiges Prompt mittels Escape-Sequencen.
   Die Farbe ist allerdings nur für den Prompt aktuell
@endnode

@node "trename" "Rename - Tips"
 *** Tips zum RENAME-Befehl *** by bug of x-act

 copy df0:Amigaguide ram: ;Vorbereitung - angenommen, es wäre so
 Rename ram:Amigaguide ram:t

   Der Rename-Befehl als Verschiebebefehl.
   Das Programm `Amigaguide` wird einfach in das Verzeichnis ram:t
   kopiert und aus ram: gelöscht.
   Hätte ich in dem oberen Beispiel statt
      ram:t
      ram:t/Amigaguide.copy benutzt,
   wäre das Programm Amigaguide zusätzlich noch in Amigaguide.copy
   umbenannt worden. Umbenennen sollte eigentlich auch die
   Hauptaufgabe des Befehls sein.
   Die Verschiebung klappt jedoch nur, wenn ein untergeordnetes
   Verzeichnis oder ein Verzeichnis auf gleicher Ebene
   verwendet wird z.B 1>rename ram:t/datei ram:env.
   In ein übergeordnetes Verzeichnis kann nicht geschoben werden.
   1>rename ram:t/datei ram:
   1>rename ram:t/datei ram:neudatei ;funktionieren beide nicht
@endnode

@node "ttype" "Type - Tips"
 *** Tips zum Type-Befehl *** by bug of x-act

 type df0:s/startup-sequence >ram:startup-sequence

   Der Type-Befehl als Copy-Befehl.
   Die Datei startup-sequence wird in die Ram Disk kopiert.

 type df0:s/startup-sequence >ram:user-startup

   Der Type-Befehl als Copy- und Rename-Befehl.
   Bei beiden Beispielen wurde jeweils eine ASCII-Datei verwendet.

 type df0:c/ed >ram:ed

   Das Kopieren klappt nicht nur mit Textdateien, sondern auch
   mit jeder Art von Programmen.

 type df0:c/ed >ram:editor

   Kopieren und Umbenennen des Programms.

 type >>ram:user-startup ram:startup-sequence

   Der Type-Befehl als Join-Befehl.
   Dabei ist user-startup die Quelldatei und die startup-sequence
   die Datei, die angehängt wird.
@endnode

@node "shell" "Shell-Startups"
 *** Shell-Startup *** by bug of x-act

 Hier einige kleine Tips, um die Shell effektiver zu nutzen.

 set echo on

   Wenn dieser Befehl am Anfang der Shell-Startup steht, wird
   jede Befehlszeile angezeigt, bevor sie ausgeführt wird.
   Es ist hilfreich, wenn der Umgang mit den "neuen Befehlen"
   noch etwas gewöhnungsbedürftig ist.

 alias cls echo *ec noline

   Fügt den eine Art Cls-Befehl zur Shell dazu.

 alias q endcli

   Wem endcli zu lang ist, q und Return-Taste genügen auch.

 avail flush >NIL:

   Kann als zweite Zeile in der Shell-Startup stehen. Damit wird bei
   jedem Shell-Aufruf der Speicher automatisch aufgeräumt.

 @{"Start Script" link "" 0}
 Show Script
 Print Script
@endnode

@node "sysinfos1" "Sysinfos1"
 *** Sysinfos1 *** by bug of x-act

 Systeminfos in der startup-sequence.
 In dieser Variante wird alles ohne Kommentare angezeigt.

 echo ""

   Zeilenvorschub.

 echo ""

 version

   Versionsnummern Kickstart und Workbench.

 echo ""

 avail

   Speicherauflistung.

 wait 2 sec

   2 Sekunden warten.

 echo ""

 assign

   Systemzuweisungen.

 echo ""
 echo "Scriptende"

 @{"Start Script" system "newshell window=con:5/12/630/240/SysInfos1/Close from Uebungen:Texte/SysInfos1"}
 @{"Show Script " system "run uebungen:utilities/more uebungen:Texte/SysInfos1"}
 @{"Print Script" system "type uebungen:Texte/SysInfos1 >prt:"}
@endnode

@node "sysinfos2" "Sysinfos2"
 *** Sysinfos2 *** by bug of x-act

 In dieser Variante werden die
 verschiedenen Workbench-Farben genutzt und
 Überschriften zu den einzelnen
 Systembefehlen ausgegeben.

 echo ""

   Zeilenvorschub.

 echo "*e[4m*e[32mSysteminformationen*e[0m*e[33m"

   e... Escape-Sequencen.
   e[4m Unterstreichen ein e[0m normaler Zeichensatz.
   e[32m Farbe 3 der Farbpalette.
   e[33m Farbe 4 der Farbpalette.

 version

 echo ""
 echo "*e[4m*e[32mSpeicherinformationen*e[0m*e[31m"

   Farbe 2 der Farbpalette.

 avail
 wait 2 sec

   2 Sekunden warten.

 echo ""
 echo "*e[4m*e[32mZuweisungen*e[0m*e[33m"
 assign
 echo ""
 echo "*e[31mScriptende*e[0m"

 @{"Start Script" system "newshell window=con:5/12/630/240/SysInfos2/Close from Uebungen:Texte/Sysinfos2"}
 @{"Show Script " system "run uebungen:utilities/more uebungen:Texte/SysInfos2"}
 @{"Print Script" system "type uebungen:Texte/SysInfos2 >prt:"}
@endnode

@node "sysinfos3" "Sysinfos3"
 *** Sysinfos3 *** by bug of x-act

 In dieser Variante werden die
 verschiedenen Workbench-Farben genutzt und
 Überschriften zu den einzelnen
 Systembefehlen ausgegeben.
 Zusätzlich wird die Kickstartversion  in die
 Form 1.3, 2.0, 3.0 ; gebracht.

 echo ""

   Zeilenvorschub.

 echo "*e[4m*e[32mSysteminformationen*e[0m*e[33m"

   e... Escape-Sequencen.
   e[4m Unterstreichen ein e[0m normaler Zeichensatz.
   e[32m Farbe 3 der Farbpalette.
   e[33m Farbe 4 der Farbpalette.

 version

 if $Kickstart not gt 37
  echo "Kickstart 1.3"
 endif

   Wenn der Inhalt der Variable $Kickstart nicht größer als 37 ist
    gebe aus "Kickstart 1.3"
   Ende des If-Blocks.

 if $Kickstart gt 37
  if $Kickstart gt 39
   echo "Kickstart 3.0"
  else
   echo "Kickstart 2.0"
  endif
 endif

   Wenn der Inhalt der Variable $Kickstart größer als 37 ist
    Wenn der Inhalt der Variable $Kickstart größer als 39 ist
     gebe aus "Kickstart 3.0"
    ansonsten (wenn nicht größer 39)
     gebe aus "Kickstart 2.0"
    Ende des inneren If-Blocks
   Ende des äußeren If-Blocks.

 echo ""
 echo "*e[4m*e[32mSpeicherinformationen*e[0m*e[31m"

   Farbe 2 der Farbpalette.

 avail
 wait 2 sec

   2 Sekunden warten.

 echo ""
 echo "*e[4m*e[32mZuweisungen*e[0m*e[33m"
 assign
 echo ""
 echo "*e[31mScriptende*e[0m"

 @{"Start Script" system "newshell window=con:5/12/630/240/SysInfos3/close from Uebungen:Texte/SysInfos3 "}
 @{"Show Script " system "run uebungen:utilities/more uebungen:Texte/SysInfos3"}
 @{"Print Script" system "type uebungen:Texte/SysInfos3 >prt:"}
@endnode

@node "sysinfos4" "Sysinfos4"
 *** Sysinfos4 *** by bug of x-act

 Die Erweiterung zeigt uns jetzt
 zusätzlich unsere CPU-Version an. Da
 dieser Befehl erst ab KS 2.X
 dazugekommen ist, wird es auch in diesem Script
 berücksichtigt.

 echo ""

   Zeilenvorschub.

 echo "*e[4m*e[32mSysteminformationen*e[0m*e[33m"

   e... Escape-Sequencen.
   e[4m Unterstreichen ein e[0m normaler Zeichensatz.
   e[32m Farbe 3 der Farbpalette.
   e[33m Farbe 4 der Farbpalette.

 version

 if $Kickstart not gt 37
  echo "Kickstart 1.3"
 endif

   Wenn der Inhalt der Variable $Kickstart nicht größer als 37 ist
    gebe aus "Kickstart 1.3"
   Ende des If-Blocks.

 if $Kickstart gt 37
  if $Kickstart gt 39
   echo "Kickstart 3.0"
   cpu
  else
   echo "Kickstart 2.0"
   cpu
  endif
 endif

   Wenn der Inhalt der Variable $Kickstart größer als 37 ist
    Wenn der Inhalt der Variable $Kickstart größer als 39 ist
     gebe aus "Kickstart 3.0"
     Welche CPU ?
    ansonsten (wenn nicht größer 39)
     gebe aus "Kickstart 2.0"
     Welche CPU ?
    Ende des inneren If-Blocks
   Ende des äußeren If-Blocks.

 echo ""
 echo "*e[4m*e[32mSpeicherinformationen*e[0m*e[31m"

   Farbe 2 der Farbpalette.

 avail
 wait 2 sec

   2 Sekunden warten.

 echo ""
 echo "*e[4m*e[32mZuweisungen*e[0m*e[33m"
 assign
 echo ""
 echo "*e[31mScriptende*e[0m"

 @{"Start Script" system "newshell window=con:5/12/630/240/SysInfos4/Close from Uebungen:Texte/SysInfos4"}
 @{"Show Script " system "run uebungen:utilities/more uebungen:Texte/SysInfos4"}
 @{"Print Script" system "type uebungen:Texte/SysInfos4 >prt:"}
@endnode

@node "sysinfos5" "Sysinfos5"
 *** SysInfos5 *** by bug of x-act

 Alle Ausgaben werden jetzt in eine
 Datei umgelenkt und anschließend
 gefragt, ob sie auf dem Bildschirm oder
 auf dem Drucker ausgegeben
 werden soll.

 Failat 21

   Die Vorsichtsmaßnahme, falls etwas schiefgeht.

 echo ""

   Zeilenvorschub.

 echo "Stelle jetzt Datei Namens *e[33mSystemInfos*e[0m in RAM: zusammen"
 echo "*ed*e[4m*e[32mSysteminformationen*e[0m*e[33m" >ram:a.si

   e... Escape-Sequencen.
   * muß beim echo-Befehl mit angegeben werden, da sonst die Escape-
     Sequence nicht erkannt wird.
   e[4m Unterstreichen ein e[0m normaler Zeichensatz.
   e[32m Farbe 3 der Farbpalette.
   e[33m Farbe 4 der Farbpalette.
   >ram:a.si die eigentlichen Bildschirmausgaben landen in den einzelnen
   Dateien a.si bis i.si.

 version >ram:b.si

 if $Kickstart not gt 37
  echo "Kickstart 1.3" >ram:c.si
  echo "Keine CPU-Informationen" >ram:d.si
 endif

   Wenn der Inhalt der Variable $Kickstart nicht größer als 37 ist
    gebe aus "Kickstart 1.3"
   Ende des If-Blocks.

 if $Kickstart gt 37
  if $Kickstart gt 39
   echo "Kickstart 3.0" >ram:c.si
   cpu >ram:d.si
  else
   echo "Kickstart 2.0" >ram:c.si
   cpu >ram:d.si
  endif
 endif

   Wenn der Inhalt der Variable $Kickstart größer als 37 ist
    Wenn der Inhalt der Variable $Kickstart größer als 39 ist
     gebe aus "Kickstart 3.0"
     Welche CPU ?
    ansonsten (wenn nicht größer 39)
     gebe aus "Kickstart 2.0"
     Welche CPU ?
    Ende des inneren If-Blocks
   Ende des äußeren If-Blocks.

 echo "*ed*e[4m*e[32mSpeicherinformationen*e[0m*e[31m" >ram:e.si

   Farbe 2 der Farbpalette.

 avail >ram:f.si
 echo "*ed*e[4m*e[32mZuweisungen*e[0m*e[33m" >ram:g.si
 assign >ram:h.si
 echo "*ed*e[31mScriptende*e[0m" >ram:i.si

 join ram:a.si ram:b.si ram:c.si ram:d.si to ram:sys1
 join ram:e.si ram:f.si ram:g.si ram:h.si ram:i.si to ram:sys2
 join ram:sys1 ram:sys2 to ram:SystemInfos

   join bastelt die einzelnen Dateien zu 2 größeren Dateien sys1 und
   sys2 zusammen und daraus wird SystemInfos gemacht.

 delete ram:?.si >NIL:
 delete ram:sys1 ram:sys2 >NIL:

   Hier werden zwei Möglichkeiten des delete-Befehls gezeigt.
   Die erste Möglichkeit verwendet den Platzhalter `?`. Diese Variante
   ist hier vollkommen ausreichend, da die angelegten Dateien nur einen
   Buchstaben vor dem Punkt haben. Ich hätte genauso `#` nehmen können
   In der zweiten Variante lösche ich mit einem Schlag zwei Dateien
   Ich hätte auch die Möglichkeit gehabt, sie nacheinander zu löschen:
       delete ram:sys1 >NIL:
       delete ram:sys2 >NIL:
   >NIL: unterdrückt die Kommentare des delete-Befehls.

 echo "Datei *e[33mSystemInfos*e[0m erfolgreich zusammengestellt"
  lab Abfrage
  echo ""
  echo "1 Ausgabe auf dem Bildschirm"
  echo "2 Ausgabe auf dem Drucker"
  echo "3 Keine Ausgabe"
  skip ? >NIL:
  lab 1
   type ram:SystemInfos
   skip ende
  lab 2
   type ram:SystemInfos >prt:
   skip ende
  lab 3
   skip ende
  lab falsch
   echo "ungültige Eingabe"
 skip Abfrage back
 Lab ende
 delete ram:SystemInfos >NIL:
 echo "Scriptende"

   lab Definierung einer Sprungmarke
   Skip ? >NIL: warten auf eine Tastatureingabe
   lab1 bis lab falsch wird die Tastatureingabe überprüft
   war sie falsch, gehts nach Abfrage zurück
   Hier die komplette Interpretation
    gebe aus "Datei Systeminfos erfolgreich zusammengestellt
    Lege Sprungmarke Abfrage fest
     Zeilenvorschub
     gebe aus "1 Ausgabe auf dem Bildschirm"
     gebe aus "2 Ausgabe auf dem Drucker"
     gebe aus "3 Keine Ausgabe"
     warte auf Tastatureingabe + Return mit Meldung nach nirgedwo
     Eingabe war 1
      lenke die Bildschirmausgabe nach Drucker um
      Sprung zur Sprungmarke ende
     Eingabe war 2
      gebe die Datei SystemInfos auf dem Bildschirm aus
      Sprung zur Sprungmarke ende
     Eingabe war 3
      Sprung zur Sprungmarke ende
     Die eingegebene Sprungmarke existiert überhaupt nicht
      gebe aus "ungültige Eingabe"
   Sprung zurück zur Sprungmarke  Abfrage
   Sprungmarke ende
   Löschen der Datei SystemInfos
   gebe aus "Scriptende.

 Eine Erweiterung der ganzen Sache wäre noch mit den Befehlen
 Info
  oder auch
 Status
  möglich.

 @{"Start Script" system "newshell window=con:5/12/630/240/SysInfos5/Close from Uebungen:Texte/SysInfos5"}
 @{"Show Script " system "run uebungen:utilities/more uebungen:Texte/SysInfos5"}
 @{"Print Script" system "type uebungen:Texte/SysInfos5 >prt:"}
@endnode

@node "verzeichnis" "Verzeichniswechsel"
 *** Verzeichniswechsel *** by bug of x-act

 Ab Kickstart 2.X ist man nicht mehr gezwungen, einen Verzeichniswechsel
 mit CD einzuleiten. Es reicht der Verzeichnisname z.B.: df0: dh0:c ...

 Uebungen:Texte
 dir

 Eine zweite Möglichkeit Verzeichnisse zu wechseln ist der
 Einsatz des Alias-Befehls.

 alias a Uebungen:
 alias b Uebungen:Texte
 a
 list
 b
 dir

    a ist jetzt der Ersatz für Uebungen: b ist Ersatz für Uebungen:Texte.

 Eine dritte Variante besteht im Einsatz der Umgebungsvariablen.

 setenv a Uebungen:c
 dir $a

    Es ist darauf zu achten, daß das Dollar-Zeichen angegeben wird, da
    es sich um eine Variable handelt.

 @{"Start Script" system "newcli window=con:5/12/630/240/Verzeichniswechsel/Close from Uebungen:Texte/Verzeichnisse"}
 @{"Show Script " system "run uebungen:utilities/more uebungen:Texte/Verzeichnisse"}
 @{"Print Script" system "type uebungen:Texte/Verzeichnisse >prt:"}
@endnode

