home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / amiga / utility / cli / csh519g.lha / csh.doc < prev    next >
Encoding:
Text File  |  1992-02-27  |  105.8 KB  |  2,950 lines

  1.  
  2.          ANLEITUNG F▄R CSHELL VERSION 5.19 1991
  3.         =======================================
  4.  
  5.  
  6.                  Inhalt
  7.                  ------
  8.  
  9.     O    Installation
  10.     I    Beschreibung
  11.     II    ▄bersicht der Haupteigenschaften
  12.     III    EinschrΣnkungen
  13.     IV    Pipes
  14.     V    PrΣprozessor
  15.     VI    Kommandozeilen-Editierung
  16.     VII    Funktionstasten
  17.     VIII    Shell Kommandos
  18.     IX    Spezielle Variablen
  19.     X    Funktionen
  20.     XI    Diverses
  21.     XII    Beispiel-Stapeldateien
  22.     XIII    Vorgabewerte
  23.     XIV    Objektorientierte Eigenschaften
  24.     XV    Tastaturbelegungen
  25.  
  26.  
  27. O Installation
  28. --------------
  29.  
  30. Die CSH kann ganz einfach von der CLI-Kommandozeile aufgerufen werden, weil
  31. die CSH aus der Sicht von AmigaDOS keine richtige Shell wie l:Shell-Seg ist,
  32. sondern ein ganz normales Programm. Jedoch ist CShell 'pure', falls also der
  33. LHarc vergessen hat, das 'p'-Bit zu setzen, sollte es bitte gleich jetzt
  34. gesetzt werden ("protect Csh +p").
  35.  
  36. Endgⁿltige Installation: Die Csh soll die AmigaShell komplett ersetzen,
  37. dazu sollte Csh gleich von Anfang an resident sein, dafⁿr bitte wie folgt
  38. verfahren:
  39.  
  40. Kickstart 1.3
  41. 1. CSH irgendwohin auf die Harddisk oder Diskette kopieren, z.B. dh1:tools
  42. 2. Nun s:startup-sequence um das Folgende ergΣnzen:
  43.     Resident CLI L:Shell-Seg SYSTEM PURE ADD
  44.     Resident dh1:tools/Csh ADD
  45.     NewShell FROM s:Csh-startup
  46.     EndCLI
  47. 3. Die Datei s:Csh-startup erstellen, die das folgendes enthΣlt:
  48.     Stack 8000
  49.     Csh -r s:firstlogin.sh
  50. 4. In die Datei s:firstlogin.sh alle Kommandos schreiben, welche nur nur
  51.     einmal aufgerufen werden sollen, etwa setmap, assign und setclock.
  52.     Dies wird eine Csh-Stapeldatei, bitte # als Kommentarzeichen
  53.     verweden und keine Punkt-Kommandos wie .key. Am Ende dieser
  54.     Datei soll stehen:
  55.      source s:login.sh
  56. 5. In der Datei s:login.sh stehen alle Kommandos, die fⁿr jedes neue
  57.     Shell-Window wieder ausgefⁿhrt werden sollen, z.B. alle 'alias' und
  58.     'set' Kommandos.
  59. 6. Und das Folgende sollte in der Datei s:shell-startup stehen, damit beim
  60.     Kommando NewShell oder von der Workbench her gleich eine Csh erscheint:
  61.      Csh s:login.sh
  62.     Achtung, alle danach folgenden Befehle werden erst dann ausgefⁿhrt,
  63.      wenn die Csh beendet wird !
  64.  
  65. Kickstart 2.0
  66. 1. CSH irgendwohin auf die Harddisk oder Diskette kopieren, z.B. dh1:tools
  67. 2. Nun s:startup-sequence bzw. s:user-startup um das Folgende ergΣnzen:
  68.     Stack 8000
  69.     Resident dh1:tools/Csh ADD
  70.     Csh s:firstlogin.sh
  71. 3. Bitte nun weiter bei Schritt 4 bzgl. Kickstart 1.3
  72.  
  73. ZusΣtzlich ist es empfehlenswert, CSH: irgendwohin zu 'assign'en, und Csh.doc
  74. und alle Stapeldateien dorthin kopieren.
  75. Also etwa:
  76.  assign CSH: dh1:tools
  77.  
  78. Ein generelles Installationsprogramm gibt es z.Z. nicht. Es ist auch
  79. ziemlich schwierig auf alle denkbaren FΣlle von Konfigurationen und
  80. Sonderwⁿnschen einzugehen. Der obig beschriebene Ablauf ist nur einmal
  81. zu erledigen, jedes Update der Csh selber, betrifft normalerweise nur die
  82. CSH selber, die vorliegende Anleitung und die Stapeldateien, nicht aber
  83. die Art und Weise wie Cshell gestartet wird. Sollte dies denn doch der Fall
  84. sein, bitte auf jeden Fall die hier beschriebene Prozedur durchlesen!
  85.  
  86. I Beschreibung
  87. --------------
  88.  
  89. Diese Version von CShell ist der Nachfolger von:
  90.     Shell V2.04 (C)Copyright 1986, Matthew Dillon, All Rights Reserved
  91.     Shell V2.04M-V2.07M by Steve Drew
  92.     Shell V2.08MI, V3.xxA and V4.xxA by Carlo Borreo & Cesare Dieni
  93.     Shell V5.xxL by U. Dominik Mueller
  94.  
  95. Irgendwelche Wⁿnsche, Fehlermeldungen, Bierflaschen oder Bugreports,
  96. sind bitte an folgende Adressen zu senden:
  97.  
  98.      FIDONET : Urban Mueller@2:302/906 (AUGL BBS)
  99.      INTERNET: umueller@iiic.ethz.ch
  100. oder
  101.      U. D. Mⁿller
  102.      Schulhausstrasse 83
  103.      CH-6312 Steinhausen
  104.      SWITZERLAND
  105.  
  106. Jedes Zeichen intelligenten Lebens ist willkommen.
  107. ('Scott me up Beamie, no intelligent lifeform down here...')
  108.  
  109. Bitte auch zuerst die Kapitel 'EinschrΣnkungen' und 'Bekannte Fehler',
  110. lesen, bevor eine Fehler gemeldet wird.
  111. Die Support-Mailbox ist AUGL, +41 75 8 20 19, +41 75 8 20 18, +41 75 2 15 87
  112. (alle Leitungen USRobotics HST) login='cshell',passwort='support'.
  113.  
  114. Bitte auch die Datei 'feedback.doc' lesen und wenn m÷glich abschicken.
  115.  
  116. Wenn es um Versionen vor 5.00 geht, bitte an wenden Carlo Borrea oder
  117. Cesare Dieni wenden:
  118.  
  119.      BITNET: PERUGIA@ICNUCEVM.BITNET
  120.      FIDONET: 2:332/602.0@FIDONET
  121. oder
  122.      Carlo Borreo        Cesare Dieni
  123.      Via G. Berio 34    Via G. Taddei 3
  124.      I-18100 Imperia    I-56100 Pisa
  125.      Italy            Italy
  126.  
  127. CShell darf nur unverΣndert und nicht gegen Profit verbreitet werden.
  128.  
  129. *** VERBREITEN SIE NIE VER─NDERTE VERSIONEN VON CSHELL ***
  130.  
  131. Wenn jeder eigene Versionen schreibt und weitergibt, wⁿrden wir innerhalb
  132. kⁿrzester Zeit in Shell-Versionen begraben. Wenn eine ─nderung an der
  133. Shell gemacht wurde, und diese anderen Benutzern zur Verfⁿgung gestellt
  134. werden soll, dann sollte eine DIFF-Ausgabe oder eine Beschreibung dessen was
  135. geΣndert wurde an den Autor geschickt werden.
  136.  
  137.  
  138. EHRENHALLE
  139. ----------
  140.  
  141. Vielen Dank an alle Leute, die mir Feedback und Hilfestellung gegeben haben,
  142. namentlich Eddy Carroll, Patrizio Rusconi, Allard Siemelink, Magnus
  143. Heldestad, Roddi Walker, Roy Haverman, Steve Koren, Randell Jesup, Peter
  144. Orbaek und der unbekannte Schwede, der fⁿr mich den 2-LF-Bug gefunden hat.
  145.  
  146. Besonderer Dank gilt den ▄bersetzern dieses Dokuments:
  147. Roy Haverman, J÷rg-Cyril Hoehle, Martin Horneffer, Hans-Christian
  148. Huerlimann, Markus Illenseer, Daniel Pfulg, Patrizio Rusconi, Christian
  149. Schneider, und mir selber...
  150.  
  151. Diese Version der Anleitung wurde von Markus Illenseer durch Entfernung
  152. grausamer Rechtschreibfehler, unglⁿcklicher ▄bersetzungen und wilder
  153. Stilentartungen aus der deutschen Ur-Version erstellt. :-)
  154. Flammen, Lexika, Duden, Weinflaschen bitte an
  155.     markus@techfak.uni-bielefeld.de
  156. senden.
  157.  
  158. II ▄BERSICHT
  159. -------------
  160.  
  161. CShell bietet eine bequeme Alternative zu den AmigaDOS Befehlen. Alle
  162. Kommandos sind eingebaut und brauchen deshalb keine zusΣtzlichen Kommandos
  163. im c: Ordner.
  164.  
  165. Die wichtigsten M÷glichkeiten:
  166.     - Frei programmierbare Kommandozeilen-Eingabe
  167.     - Kommandospeicher (die letzten 50 Kommandos werden gespeichert)
  168.     - Pipes (Ein- und Ausgabeumleitung)
  169.     - Aliase mit Argumenten
  170.     - Variablen
  171.     - Suchmuster (* und ? fⁿr Dateinamen)
  172.     - Bedingte Anweisungen (if, else, endif)
  173.     - Stapeldateien
  174.     - Dateinnamen-VervollstΣndigung mit TAB
  175.     - Objektorientierte M÷glichkeiten, Dateiklassen und Operationen.
  176.     - Viele eingebaute Kommandos zur Beschleunigung der Ausfⁿhrung
  177.     - Volle FunktionalitΣt auf VT-Terminals
  178.  
  179. Eine ▄bereinstimmung mit der unter UNIX (tm) weit verbreiteten CSH, TCSH
  180.  oder RC ist nicht ungewollt aber kann z.Z. nicht in allen Bereichen erreicht
  181.  werden (z.B. Jobhandling), wird durch das Klassenprinzip aber deutlich
  182.  verbessert.
  183.  
  184. CShell lΣuft mit minimalem Stack (4 KBytes), aber fⁿr kompliziertere
  185.  Aliase und Stapeldateien sollte der Stack auf 8K erh÷ht werden bevor die
  186.  CShell startet.
  187.  
  188. Wird die CShell zum ersten Mal benutzet, bitte folgendes beachten:
  189.     - Die eingebauten Kommandos mⁿssen in Kleinschrift eingegeben
  190.        werden, und k÷nnen z.T. abgekⁿrzt werden.
  191.     - Das Kommando 'c:Execute' kann nicht umgeleitet werden.
  192.        AmigaDOS Stapeldateien k÷nnen weiterhin mit 'source' ausgefⁿhrt
  193.        werden, sofern jene keine .-Kommandos wie .key enthalten.
  194.     - Jederzeit Auskunft ⁿber ein gewⁿnschtes CShell-Kommando
  195.        erhΣltlich, mittels 'man <kommando>'.
  196.  
  197.  
  198. III EinschrΣnkungen
  199. -------------------
  200.  
  201. Der folgende Fehler betrifft nur V36 von Kickstart 2.0: Die internen
  202.  Kommandos k÷nnen nicht gestartet werden. Dasselbe gilt fⁿr Kommandos in C:,
  203.  wenn diese mit dem AmigaDOS 'Resident' Kommando resident gemacht wurden. Mit
  204.  Csh's 'resident' funktionieren solche. Deshalb sollten die internen Residents
  205.  nicht verwendet werden. Dies kann mit dem Start-Schalter -i0 erreicht werden,
  206.  wenn Kickstart V36 verwendet wird.
  207.  
  208. Unter Kickstart 1.3, k÷nnen AmigaDos-Residents nicht direkt gestartet werden.
  209.  Dies kann durch die Option -r verbessert. Diese kopiert die AmigaDOS
  210.  Resident Liste einmalig in die ARP-Resident-Liste (Diese Residents k÷nnen
  211.  nicht mehr entfernt werden). Es wird versucht, eine bessere L÷sung zu
  212.  finden.
  213.  
  214. Die beste L÷sung unter beiden Kickstarts ist es, nur Csh selber AmigaDOS
  215.  resident zu installieren, und alle anderen Kommandos, wenn vorhanden, nur ARP
  216.  resident zu installieren. Unter 1.3 kann die Shell (wie auch alle anderen
  217.  Kommandos) nur von der Resident-Liste gestartet werden, wenn vorher das
  218.  Kommando 'resident CLI l:Shell-seg' und 'newcli' eingegeben wurden.
  219.  
  220. Das c:Execute Kommando kann nicht umgeleitet werden, es setzt keinen Return-
  221.  Kode und verursacht unter UmstΣnden andere Probleme. Es arbeitet ⁿberhaupt
  222.  nicht mehr wenn es einen anderen Namen hat.
  223.  
  224. Der VDK: Handler und Frank Seidel's BootRam-Handler haben einen Fehler beim
  225.  setzen des Datei Datums. Soll das copy Kommando gebraucht werden, sollten
  226.  die Option -d und -p verwendt werden, sonst kann es sein das das Datum
  227.  fehlerhaft ist. (Das ist kein Shell Fehler)
  228.  
  229. Wenn Csh mit Conman verwendet wird kann in Betracht gezogen werden, Csh mit
  230.  der Option -a zu starten. Dies schaltet die Csh-Editier-Funktionen in der
  231.  Kommandozeile aus, statt dessen werden die des Conmans benutzt. Aber
  232.  dadurch gehen viele Csh M÷glichkeiten verloren, wie z.B.
  233.  die Dateinamen-VervollstΣndigung.
  234.  
  235. CB-Handler (ein Tool das im CLI Window eine Scrollbar installiert) ist nicht
  236.  100% kompatibel zu Csh. Der Inhalt des CB-Handlers-Logs stimmt nicht immer
  237.  mit dem tatsΣchlichen Screen-Inhalt ⁿberein.
  238.  
  239.  
  240. IV. BEMERKUNGEN ZU DEN PIPES
  241. ----------------------------
  242.  
  243.     PIPES
  244.  
  245.     PIPES benutzen TemporΣrDateis im Ordner t:. Bitte vorsichtig mit
  246.      Suchmustern wie 't:*' da diese auch die TemporΣrdateien betreffen
  247.      k÷nnten. Die TemporΣrdateien werden nach dem Beenden des Pipe
  248.      Segment gel÷scht.
  249.  
  250.     Die benutzen Dateinamen sind einmalig, selbst wenn mehrere Shell's
  251.      nebeneinander laufen.
  252.  
  253.     Von nun an ist es auch m÷glich, interne Kommandos mittles Pipe in ihren
  254.      Ein- und Ausgaben zu steuern.
  255.      z.B. 'echo charlie >ram:x' oder 'echo "echo mem | Csh" | Csh'
  256.  
  257.     Kein BCPL Programm sollte mit Output-Append '>>' umgeleitet werden.
  258.  
  259.  
  260. V. KOMMANDO PR─PROZESSOR
  261. --------------------------
  262.  
  263.     PR─PROZESSING
  264.     PrΣprozessing wird in der Kommandozeile ausgefⁿhrt, bevor diese an
  265.      interne oder externe Routinen weitergegeben wird.
  266.  
  267.     ^c Wobei c ein Zeichen ist, da▀ in ein Kontroll Zeichen gewandelt
  268.      wird. z.B. '^l' steht fⁿr Control-l.
  269.  
  270.     \233 Fⁿgt das Zeichen mit dem oktalen Kode 233 ein. Keine Werte
  271.      zwischen 200o und 232o benutzen, da diese spezielle Bedeutung haben.
  272.      \240 ist der Wort Seperator. (Ein \ )
  273.  
  274.     $Name Wobei Name ein variabler Name ist. Variablennamen k÷nnen aus den
  275.      folgenden Zeichen bestehen: 0-9, a-z, A-Z und dem Unterstrich '_'.
  276.      Der Inhalt der spezifizierten Variablen wird gebraucht. Falls die
  277.      Variable nicht existiert, wird der Name selber eingesetzt.
  278.      z.B. Wenn die Variable 'i' 'Charlie' enthΣlt, dann ist '$i' ->
  279.      'Charlie' Wenn die Variable aber nicht existiert dann bleibt '$i' ->
  280.      '$i'.
  281.  
  282.     ; Trennt Kommandos. 'echo charlie ; echo ben.' So k÷nnen mehrere
  283.      Kommandos auf eine Zeile geschrieben werden.
  284.  
  285.     ' ' (ein Leerzeichen). Leerzeichen trennen Argumente.
  286.  
  287.     "Zeichenkette" ein in Anfⁿhrungszeichen stehende Zeichenkette. Das
  288.      schliessende Anfⁿhrungszeichen muss nicht gesetzt werden.
  289.      z.B. Sollen fⁿnf Leerzeichen und ein 'a' ausgeben werden:
  290.      echo      a  -> a
  291.      echo "     a ->      a
  292.  
  293.     \c Verhindert den Inhalt eines Spezialzeichens.
  294.      '\^a' ist ein Circumflex und ein a und kein Control-A.
  295.      Ein Backslash wird wie folgt geschrieben: '\\' .
  296.      Dies wird ebenso benutzt, um das Suchen nach Aliases zu unterbinden.
  297.  
  298.     >Datei Spezifiziert Ausgaben Umleitung. Die Ausgabe des Kommandos wird
  299.      in die spezifizierte Datei geschrieben.
  300.  
  301.     >>Datei Spezifiziert Ausgaben Umleitung. Die Ausgabe wird an eine
  302.      bestehende Datei angehΣngt. (Arbeitet nicht mit BCPL Programmen).
  303.  
  304.     <Datei Spezifiziert Eingaben Umleitung. Das Kommando bekommt seine
  305.      Eingaben aus der Datei 'Datei' anstatt von der Tastatur.
  306.      Achtung, nicht alle Kommandos erwarten eine Eingabe. Es hat
  307.      z.B. keinen Sinn zu schreiben 'echo <charlie', da das 'echo'
  308.      Kommando nur seine Argumente ausgibt.
  309.  
  310.     | PIPE Spezifikator. Die Ausgabe des Kommandos auf der linken Seite,
  311.      wird zur Eingabe des Kommandos auf der Rechten. Die Shell braucht im
  312.      Moment TemporΣredateien, um die Daten zwischenzuspeichern.
  313.  
  314.     !! Fⁿhre das letzte Kommando aus.
  315.  
  316.     !nn (<nn> ist eine Zahl). Fⁿgt das Kommando aus dem Kommando-Speicher
  317.      Nummer <nn> ein.
  318.      Siehe HISTORY Kommando.
  319.  
  320.     !teil Sucht rⁿckwΣrts durch den Kommando-Speicher nach einem Kommando
  321.      das gleich beginnt wie <teil>, und fⁿhrt dieses aus.
  322.  
  323.     # Kommentar. Der Rest der Zeile wird ⁿbergangen.
  324.      Beachte: \# hebt die spezielle Wirkung des '#'-Zeichens auf.
  325.  
  326.     {e hi;e ho} Fⁿhrt zwei Kommandos wie eines aus, so dass sie umgeleitet
  327.      werden k÷nnen. (Siehe ALIAS Kommando). Die schliessende
  328.      geschweifte Klammer muss nicht geschrieben werden.
  329.  
  330.     $(fasel) Fⁿgt die Ausgabe des Kommandos 'fasel' an dessen Position
  331.      in der Kommandozeile ein. Jede Zeile der Ausgabe gilt als
  332.      ein Argument. Die schliessende Klammer ist optional.
  333.  
  334.     'fasel' Fⁿgt die Ausgabe des Kommandos 'fasel' an dessen Position
  335.      in der Kommandozeile ein. Jedes Wort der Ausgabe gilt als
  336.      ein Argument. Mehrere Leerzeichen werden entfernt.
  337.      Die schliessende Klammer ist optional.
  338.  
  339.     Achtung, den Unterschied zwischen folgendem bemerken:
  340.      alias count {echo eins;echo zwei}
  341.      alias count "echo eins;echo zwei
  342.  
  343.     Die erste Form schafft ein Alias, welches ein lokales Alias ent-
  344.      hΣlt, wΣhrend die 2. ein normales Alias generiert. Auch werden
  345.      Zeichen in geschweiften Klammern nur einmal interpretiert, sodass
  346.      nicht fⁿr jedes Spezialzeichen wieder einen Backslash gebraucht
  347.      wird.
  348.      Darum sehen die Kommandos in geschweiften Klammern so aus
  349.      als wenn sie auf der Kommandozeile eingetippt wⁿrden. Beispiel:
  350.       forever {echo \#
  351.       forever "echo \\\#
  352.     Ein Block kann sich ⁿber mehrere Zeilen ausdehnen. Siehe 'source'
  353.      Kommando.
  354.  
  355.  
  356. VI. KOMMANDO ZEILEN EDITIEREN
  357. -----------------------------
  358.  
  359.  Die Kommandozeile kann bis zu 255 Zeichen lang sein.
  360.  Einfⁿgungen und L÷schungen funktionieren auch ⁿber mehrere Zeilen.
  361.  Die Stapeldatei 'menu.sh' installiert ein Intuition Menu das die meisten
  362.  Editierfunktionen enthΣlt.
  363.  
  364.     EDITIEREN
  365.  
  366.     -- CURSOR BEWEGEN--
  367.     Pfeil Links     Ein Zeichen nach Links
  368.     Pfeil Rechts     Ein Zeichen nach Rechts
  369.     Shift-Pfeil     Links Ein Wort nach Links
  370.     Shift-Pfeil     Rechts Ein Wort nach Rechts
  371.     ESC-Pfeil     Links Gehe zum Beginn der Zeile (^A) (^Z)
  372.     ESC-Pfeil     Rechts Gehe zum Ende der Zeile (^E)
  373.     -- LOESCHEN --
  374.     Backspace     Zeichen Links des Cursors
  375.     Del Zeichen     Unter dem Cursor
  376.     ESC-Backspace     Wort Links des Cursors (^W)
  377.     ESC-Del Wort     Rechts des Cursors
  378.     ESC-x-Backspace    Bis zum Beginn der Zeile (^B)
  379.     ESC-x-Del     Bis zum Ende der Zeile (^K)
  380.     ESC-d         Die gesammte Zeile (^X)
  381.     -- KOMMANDO-SPEICHER --
  382.     Pfeil aufwΣrts     Im Kommando-Speicher ein Kommando nach oben
  383.     Pfeil abwΣrts     Im Kommando-Speicher ein Kommando nach unten
  384.     Shift-Pfeil aufwΣrts     Erstes Kommando im Kommando-Speicher
  385.                 das 'passt'
  386.     Shift-Pfeil abwΣrts     Geht zum Ende des Kommando-Speichers
  387.     ESC-Pfeil aufwΣrts      Geht zum Beginn des Kommando-Speichers
  388.     ESC-Pfeil abwΣrts       Geht zum Ende der Kommando-Speichers
  389.     ESC-!        Holt Kommando von einem schon eingegebenen Teil
  390.             aus Kommando-Speicher
  391.     ^T         Fⁿgt die letzte Zeile ein, ausser dem ersten Wort
  392.     ^P         Kopiere vorhergehendes Wort. (Nⁿtzlich fⁿr mv)
  393.     -- DATEINAMEN VERVOLLSTAENDIGUNG --
  394.     TAB         Fⁿgt den ersten passenden Dateinamen ein
  395.     Shift-TAB     Fⁿgt lΣngsten passenden gemeinsamen Dateinamen ein
  396.     ESC-TAB     Fⁿgt alle Dateinamen ein die passen.(Auch ESC-*)
  397.     ESC-c         Quick-CD mit Wort links des Cursors (TAB -> Cycling)
  398.     ESC-~         Fⁿgt den letzen Ordner ein
  399.     ^D         Zeigt alle Dateien die dem Muster einsprechen
  400.             (Auch ESC-=)
  401.     -- ZEILE AUSFUEHREN--
  402.     Return         Fⁿhrt Zeile aus
  403.     ESC-Return     Fⁿhrt akt. Zeile des Kommando-Speichers aus und zeigt
  404.             nΣchste
  405.     ^N         Speichert aktuelle Kommandozeile und geht zur nΣchsten
  406.     ^\ EOF         (Csh wird abgebrochen)
  407.     -- VERSCHIEDENES --
  408.     ^L         Schreibe die momentane Zeile nochmals.
  409.     ^O         Echo ^O
  410.     ^R         Wiederhole letztes Editierkommando
  411.     ^U         Letzten Editierbefehl RⁿckgΣngig machen
  412.     ESC-i         Umschalten Einfⁿge/▄berschreibemodus
  413.     f1-f10         Fⁿhre Kommando aus wenn Variable existiert.
  414.     F1-F10         Noch mehr Kommandos (Geshiftete f Tasten).
  415.     Help         Fⁿhrt help Kommando aus.
  416.  
  417. Wenn der Cursor auf oder direkt hinter einem noch nicht kompletten Dateinamen
  418.  steht und die TAB Taste gedrⁿckt wird, setzt Cshell den ersten Dateinamen
  419.  (alphabethisch sortiert) ein, der dem teilweise geschreibenen Namen
  420.  entspricht. Alle Wildcards sind hier erlaubt. Wenn keine gegeben sind, wird
  421.  automatisch ein '*' angehΣngt. Durch wiederholtes Drⁿcken der TAB Taste kann
  422.  durch eine Liste aller Dateien gegangen werden, die dem nicht kompletten
  423.  Dateinamen entsprechen.
  424.  Shift-Tab fⁿgt nur jenen Teil der Zeichenkette ein, der allen gefundenen Namen
  425.  gemeinsam ist.
  426.  ESC-Tab fⁿgt den Namen des Ordners ein, in den gewechselt wⁿrde, wenn
  427.  mit dem aktuellen Teil der Zeichenkette ein Quick-CD ausfⁿhrt wⁿrde.
  428.  
  429. Achtung, ^D erm÷glicht jetzt das Verlassen der Stapeldateien wie unter
  430.  AmigaDOS, oder Ordner anzeigt ohne Csh zu verlassen. Soll alles beim Alten
  431.  belassen werden, sollte ein 'keymap 0 4=41' ausgefⁿhrt werden.
  432.  
  433. Die Ctrl-F,Ctrl-G,Ctrl-V und die Ctrl-Y Kombination sind unbesetzt. Diese
  434.  k÷nnen beliebig belegt werden (siehe Kapitel XV). Auch alle voreingestellten
  435.  Kombinationen k÷nnen neu belegt werden.
  436.  
  437.  
  438. VII. FUNKTIONSTASTEN
  439. --------------------
  440.  
  441.     Funktionstasten
  442.      setzen jetzt Text an der aktuellen Position der Kommandozeile ein. Der Text
  443.      kann mit einem '^M' terminiert werden, was einem <Return> entspricht und
  444.      damit das Kommando sogleich in der Kommandozeile ausfⁿhrt. 'f1' bedeutet
  445.      Funktionstaste ohne Shift, 'F1' mit Shift. Die meisten Funktionstasten
  446.      haben eine Voreinstellung, aber kann diese natⁿrlich auch anders definiert
  447.      werden.
  448.          $ set f1 dir df0:^M
  449.      wⁿrde den Text 'set f1 dir df0:' auf die Kommandozeile hinzufⁿgen
  450.      und danach noch <Return> ausfⁿhren.
  451.         $ set f1 dir
  452.      wⁿrde den Text 'dir' auf die Kommandozeile hinzufⁿgen worauf der Benutzer
  453.      dann z.B. ' df0:<Return>' eingeben kann.
  454.  
  455. VIII. SHELLKOMMANDOS
  456. --------------------
  457.  
  458.     START OPTIONEN
  459.     Zuerst die Shell vom CLI aus starten:
  460.  
  461.     Csh [-abcfiknstv] [-c Kommando;..;KommandoN]
  462.     Csh [-abcfiknstv] [Stapeldatei1 ... StapeldateiN]
  463.  
  464.      -a AUX: Modus. Kein Kommandozeilen-Editieren und Text-Markierung.
  465.      -b Startet Shell im Hintergrund, was heisst, nur Task PrioritΣt -1.
  466.      -c Erlaubt Ausfⁿhrung EINER Kommandozeile und verlΣsst Shell gleich
  467.        wieder. Nⁿtzlich um Shellkommandos im Hintergrund oder von einer
  468.        externen Applikation aus auszufⁿhren. Bsp.:
  469.        Run Csh -c "dir df0:; copy -r df0: df1: >nil:; echo Done"
  470.      -f Startet Shell im Vordergrund, was heisst, Task PrioritΣt 1.
  471.       Diese PrioritΣt kann wieder auf 0 gesetzt werden am Ende der .login
  472.        Datei
  473.      -i0 Keine INTERNEN residents. Fⁿr V36 Kickstarts.
  474.      -k Setzt _nobreak bevor irgendwas getan wird.
  475.      -n Unterdrⁿckt starten von s:.login
  476.      -r Kopiert die AmigaDOS resident list zur ARP resident list.
  477.         Diese kann nicht mehr entfernet werden. Kein Kopieren unter
  478.         Kick 2.0 oder  wenn ARP residents existieren.
  479.      -s Erlaubt global den Stern '*' anstatt '#?' in AmigaDOS 2.0
  480.      -t Terminal Modus. Es ist m÷glich an einem VT100-kompatiblen
  481.        Terminal Kommandozeilen zu editieren sowie auch Text-
  482.        Markierung zu betreiben. Backspace und DEL Austausch wird
  483.        mit dem 'keymap'-Kommando bewerkstelligt.
  484.      -v setzt _verbose zu 'hs' bevor irgendwas getan wird.
  485.  
  486. Unter 1.3 ist es wohl am Besten Csh mit dem AmigaDOS Kommando Resident
  487.  in der s:startup-sequence resident zu machen und dann mit der Option -r
  488.  zu starten. Auf diese weise kannst du eine weitere residente Csh
  489.  aus der Csh heraus starten. BEACHTE: Residents, die mit -r kopiert
  490.  wurden k÷nnen nicht mehr entfernt werden! Es ist ratsam fⁿr alles
  491.  andere ausser Csh das interne resident Kommando zu nutzen.
  492.  
  493.     KOMMANDOAUSFⁿHRUNG
  494.  
  495.     Interne Shellkommandos unterscheiden Gross- und Kleinschreibung und
  496.      k÷nnen abgekⁿrzt werden.
  497.  
  498.     Das erste Argument ist der Kommandoname... schauen wir uns mal an
  499.      wie die Shell versucht, es auszufⁿhren:
  500.  
  501.     1) Die Alias Liste wird nach dem exakt passenden Muster, das
  502.         vorgegeben wurde, durchsucht.
  503.     2) Die interne Kommando-Liste wird nach einem teilweise passenden
  504.         Muster abgesucht (z.B. 'resi' anstatt 'resident').
  505.         Jedenfalls sollte das Muster genⁿgend beinhalten, damit das
  506.         Kommando auch einmalig ist.
  507.     3) Danach wird die Funktions-Liste nach dem exakt passenden Muster
  508.         abgesucht. Wenn eine gefunden wird, dann wird dessen Resultat
  509.         auf die Standard-Ausgabe ausgegeben.
  510.     4) Jetzt nimmt die Shell an, dass es sich um ein externes Kommando
  511.         handelt. Argumente mit Freizeichen, Strichpunkten oder leeren
  512.         Zeichenketten werden mit Anfⁿhrungs- und Schlusszeichen umrahmt.
  513.         (Wichtig!)
  514.     5) Falls es sich um ein Ordner handelt, wird ein 'cd <Datei>'
  515.         ausgefⁿhrt.
  516.     6) Die AmigaDOS und ARP resident list werden abgesucht (Es ist
  517.         'resident' von der Shell zu benⁿtzen, um eine Datei in der ARP
  518.         Liste hinzufⁿgen; entfernen mit add/remove).
  519.     7) Wenn die Datei im aktuellen Ordner ist,und auch ausfⁿhrbar ist,
  520.         dann wird sie als Programm gestartet.
  521.     8) Es wird im AmigaDOS path (Pfad) und c: (Achtung, Path auf C:
  522.         erweitert, funktioniert nicht unter 2.0. Dazu 'path'
  523.         verwenden).
  524.     9) Jetzt wird der Shell Pfad ($_path) abgesucht. Wenn das
  525.         Kommando dort gefunden wird, und ausfⁿhrbar ist, wird es
  526.         gestartet. Wenn das 's'-Bit gesetzt ist, wird es unter der
  527.         zugewiesenen Shell ausgefⁿhrt. Siehe FREMDE SHELLS.
  528.     10) Wenn eine Datei existiert mit Endung '.sh' und denselben
  529.          Basisnamen im aktuellen Ordner oder im Shell Pfad, dann
  530.          wird sie mit dem Shellkommando 'source' ausgefⁿhrt.
  531.     11) Als nΣchstes wird die Variable _rxpath untersucht. Wenn dort
  532.          eine Datei mit der Endung '.rexx' existiert und denselben
  533.          Basisnamen im aktuellen Ordner oder im '$_rxpath', dann wird
  534.          sie mit dem Arexxkommando 'RX <Datei>' ausgefⁿhrt.
  535.     12) Wenn bis hierhin nichts gefunden wurde, wird der Datei ein 'exec'-
  536.          Kommando geschickt. Siehe Kapitel XIV fⁿr weitere Infos ⁿber
  537.          Klassen und Aktionen.
  538.  
  539.     Um zu erzwingen, dass ein externes 'dir'-Kommando gestartet wird, mu▀
  540.      'Dir' eingeben werden. Es wΣre eine gute Angewohnheit alle externen
  541.      Kommandos mit einem grossgeschriebenen Erstbuchstaben aufzurufen,
  542.      obwohl es nicht notwendig ist.
  543.  
  544.     AUTOMATISCHES SOURCING
  545.     Sourcing (=Ausfⁿhren von Stapeldateien) kann erreicht werden indem
  546.      die Stapeldatei mit der Endung '.sh' aufgerufen wird. Also, wenn
  547.      'Quell' aufgerufen wird, und die Datei 'Quell.sh' im aktuellen
  548.      Ordner oder im Shell Pfad existiert (BEACHTEN SIE: NICHT im
  549.      AmigaDOS Pfad), dann wird sie mit dem 'source' Kommando mit allen
  550.      Argumenten, die in der Variable $_passed platziert wurden, ausgefⁿhrt.
  551.      Das wΣre dasselbe, als wⁿrde 'source Quelle.sh' eingeben werden.
  552.  
  553.     FREMDE SHELLS
  554.     Werden unterstⁿtzt durch Schlⁿsselzeichen zu Beginn dieser
  555.      Stapeldateien. Wenn eine Datei im $_path ein s-bit hat, werden die
  556.      ersten paar Zeichen gelesen. Wenn die ersten zwei Zeichen '/*', '#!'
  557.      oder ';!' seien sollten, wird der Rest der ersten Zeile als der Name
  558.      der Shell interpretiert, die das Skript ausfⁿhren soll. Wenn diese
  559.      magischen Zeichen fehlen, wird c:Execute benutzt.
  560.     Beispiele:
  561.      /*RX         /* Eine Arexx-Stapeldatei */
  562.      #!SKsh -c source     # Eine SKsh-Stapeldatei mit Argument
  563.  
  564.     SUCHMUSTER
  565.     Die meisten Shellkommandos werden mehrere Argumente, die das
  566.      Resultat einer Suchmuster ErgΣnzung sind, akzeptieren. Auch wenn
  567.      ein externes Kommando aufgerufen wird, wird die Shell zuerst die
  568.      Suchmuster ErgΣnzung zu einzelnen Argumenten separieren. Wird ein
  569.      externes Kommando mit eigener Suchmuster ErgΣnzung verlangt, ist es
  570.      sinnvoll, Anfⁿhrungszeichen um das spezielle Suchmuster zu setzen,
  571.      oder ein Alias zu benⁿtzen (siehe ErklΣrung von 'alias').
  572.      Beispiele:
  573.      arc a new.arc *.txt   #die Shell wird ErgΣnzungen zu arc schicken.
  574.      arc a new.arc "*.txt" #arc soll die Suchmuster selber expandieren.
  575.      alias arc "*a Arc $a" #nun wird die Shell nie ergΣnzen.
  576.  
  577.     Erlaubte Suchmuster:
  578.     ?     Zu irgendeinem (1) Zeichen passend.
  579.     *     Zu irgendeiner Zeichenkette passend. (Beliebig lang!)
  580.     .../*     Rekursiv suchen in alle Unterordner hinunter
  581.           vom aktuellen Ordner ausgehend.
  582.     ~     Ausschluss der Suchmusterspezifikation.
  583.     !     Gleichbedeutend zu '~'. Wird aus KompatibilitΣtsgrⁿnden
  584.           unterstⁿtzt.
  585.     &     Kommt als Prefix vor das Muster, fragt BestΣtigung fⁿr
  586.           jede Datei ab.
  587.     []    Zeichenklasse. [a-c] lΣ▀t die Zeichen a, b und c zu.
  588.     ~     Der vorherige aktuelle Ordner (sofern
  589.           das ~ abgesondert dasteht).
  590.  
  591.     BEACHTE: Das Muster muss ein '?' oder ein '*' enthalten, sonst
  592.      wird es nicht als solches betrachtet. Auch ein einzelnes '?' als
  593.      Muster im ersten Argument eines Kommandos kann nicht ergΣnzt werden,
  594.      da dies an das Kommando weitergegeben wird, damit dieses Kommando
  595.      eine Kurzanleitung von sich selbst ausgibt (Help-Funktion der
  596.      internen Kommandos).
  597.  
  598.     Hier einige Beispiele fⁿr Suchmuster, um das Oben gesagte besser
  599.     zu illustrieren:
  600.  
  601.     df0:.../*     Alle Dateien in allen Ordnern von df0:
  602.     df0:.../!*.info   Alle Dateien von df0: aber OHNE Dateien mit der
  603.               Endung '.info'
  604.     !*.o !*.c     Alle Dateien im aktuellen Ordnern ausser
  605.               solche mit Endung '.o' oder '.c'
  606.     df1:&*        Alle Dateien in df1:, aber BestΣtigung durch
  607.               Abfrage
  608.     *.[co]        Alle Dateien mit Endung '.c' oder '.o'
  609.     ~*.[co]       Alle Dateien ohne Endung '.c' oder '.o'
  610.     ~         Vorheriger aktueller Ordner
  611.     ~/*.c         Alle '.c'-Dateien im vorherigen aktuellen
  612.               Ordner
  613.     ~//           Das Vaterordner vom vorherigen aktuellen
  614.               Ordner
  615.     .         Das aktuelle Ordner
  616.     ./fasel.c     Gleichbedeutend mit fasel.c
  617.     ..        Der Vaterordner vom aktuellen Ordner
  618.     ../fasel.c    Die Datei fasel.c im Vaterordner
  619.  
  620.     Achtung, einige Kommandos verhindern Suchmuster ErgΣnzung:
  621.       dir, rpn, whereis und window.
  622.      Diese Kommandos werden die Suchmuster selber erweitern.
  623.      Darum wird auch
  624.       dir @without( *.? , *.o )
  625.      nicht funktionieren. Anstelle dessen ist zu benutzen:
  626.       set arg @without( *.? , *.o );dir $arg
  627.  
  628.     Es gibt eine Ausnahme in den Regeln oben: Ein einzelnes '?' als
  629.      erstes Argument wird nicht erweitert. Stattdessen erlaubt es eine
  630.      Anzeige des Kommandohilfstextes.
  631.  
  632.     Folgende Symbole werden noch nicht unterstⁿtzt durch Suchmuster
  633.      ErgΣnzung, werden aber von 'search -w' und '@match()' akzeptiert:
  634.  
  635.      ( | ) mit OR suchen (OR=logisches ODER)
  636.      # einmal oder mehrmals das unmittelbar folgende Zeichen nach #
  637.  
  638.     Beispiele:
  639.  
  640.     "k#a"          passt zu: ka, kaa, kaaa, etc.
  641.     "hel(lo|p)"    passt zu: hello oder help.
  642.  
  643.  
  644. VIII Shell Kommandos
  645. --------------------
  646.  
  647.     ABORTLINE
  648.     Gebrauch: abortline
  649.     Beispiel: echo a; abort; echo b
  650.     Ergebnis: a
  651.  
  652.     Verhindert, da▀ der Rest der Zeile ausgefⁿhrt wird. Wird
  653.      ⁿblicherweise im Zusammenhang mit der Ausnahme-Behandlung
  654.      verwendet.
  655.  
  656.     ACTION
  657.     Gebrauch: action [-a] Methodenname Datei [Argumente]
  658.  
  659.     Wendet eine Methode auf ein Datei an.
  660.  
  661.     Optionen:
  662.      -a (abort)
  663.     Es wird 0 bei Erfolg, 1 im Fehlerfalle zurⁿckgegeben.
  664.      Sonst werden die normalen Ferhlercodes 10 oder 11
  665.      zurⁿckgegeben.
  666.  
  667.     ADDBUFFERS
  668.     Gebrauch: addbuffers GerΣt Puffer [GerΣt Puffer...]
  669.     Beispiel: addbuffers DH1: 200
  670.  
  671.     Wie das gleichnamige AmigaDOS Kommando. Weist einem
  672.      AmigaDOS GerΣt neue Puffer zu. Jeder Puffer verbraucht 512
  673.      Bytes RAM. (Chip!)
  674.  
  675.     ALIAS
  676.     Gebrauch: alias [Name [Kommando Zeichenkette] ]
  677.     Beispiel: alias vt "echo Starte VT100;run sys:tools/vt100"
  678.  
  679.     Weist einem Namen eine (Kommando-)Zeichenkette zu. Mehrere
  680.      Kommandos k÷nnen zu einem 'Alias' zusammengefasst werden, wenn
  681.      sie wie im Beispiel in Anfⁿhrungszeichen stehen, und mit
  682.      Semikola getrennt werden. Danach braucht nur noch der Name
  683.      eingegeben zu werden und die komplette Kommando-Zeile wird
  684.      ausgefⁿhrt.
  685.      'Alias'e dⁿrfen sich gegeseitig ausrufen, aber nicht
  686.      rekursiv. Dadurch funktioniert z.B. so etwas:
  687.      alias ls "ls -s"
  688.      RekursivitΣt wird von der Shell nicht abgefangen !
  689.  
  690.     Das Ersetzen durch 'alias'e kann wie folgt
  691.      verhindert werden: \ls
  692.  
  693.     ▄bergabe von Argumenten an ein Alias:
  694.  
  695.     Gebrauch: alias Name "%Var[%Var...] [Kommando Zeichenkette]"
  696.      alias name "*Var[%Var...] [Kommando Zeichenkette ]"
  697.     Beispiel: alias xx "%q%w echo Hallo $q, Du siehst $w aus!
  698.      xx Willie heute gut
  699.     Ergebnis: Hallo Willie, Du siehst heute gut aus!
  700.  
  701.     Diese zweite Form des Alias-Befehls erlaubt es durch die
  702.      Verwendung von Variablennamen, Argumente mitten im der
  703.      Zeichenkette zu verwenden. Diese Variablen sind lokal und
  704.      au▀erhalb des Alias nicht mehr wirksam. Diese haben keinen Einflu▀
  705.      auf andere gleichnamige Variablen.
  706.      Werden mehrere Argumente angegeben, wird jeder Variablen
  707.      ein Wort zugewiesen, der letzten aber, wie im Beispiel, der
  708.      Rest der Zeile.
  709.  
  710.     Ein "*" statt dem "%" verhindert die Ausfⁿhrung von
  711.      Suchmustern. Beispiel:
  712.  
  713.      alias lharc "*a lharc $a
  714.  
  715.     Um die Suchmuster auszufⁿhren, kann folgendes verwendet werden:
  716.      exec set a $a
  717.  
  718.     IMPLIZITE ALIAS'e:
  719.  
  720.     Gebrauch: {Kommando;Kommando}
  721.      {%var Kommando;Kommando} Argument1 .. ArgumentN
  722.     Beispiel: {%tmp echo %tmp %tmp} Hallo
  723.     Ergebnis: Hallo Hallo
  724.  
  725.     Geschweifte Klammern definieren temporΣre Aliase. Ihre
  726.      Ein- und Ausgabe kann als Ganzes umgelenkt werden, sie
  727.      k÷nnen Argumente und lokale Variablen haben. Diese zΣhlen als
  728.      ein Argument, selbst wenn sie Leerzeichen enthalten (wie bei
  729.      Anfⁿhrungszeichen) und sie k÷nnen beliebig geschachtelt
  730.      werden. Die schlie▀enden Klammer ist optional, wenn jene am
  731.      Ende einer Zeile steht. Beispiel:
  732.  
  733.       alias sicher {e "Sind Sie sicher?"; input -s Klar}
  734.  
  735.     AREXX
  736.     Die Kommandos RXREC und RXSEND werden von der Cshell zur Verfⁿgung
  737.      gestellt. Damit ist optimales Arbeiten mit AREXX von der Shell
  738.      gewΣhrleistet. Der Rexxmast ist natⁿrlich selber zu installieren,
  739.      am besten in s:startup-sequence. Bitte auch im AREXX-Manual oder
  740.      im AmigaDOS-Manual (WB 2.0) nachlesen.
  741.  
  742.     ASCII
  743.     Gebrauch: ascii
  744.      ascii Zeichenkette
  745.  
  746.     Zeigt beim Aufruf ohne Zeichenkette eine komplette ASCII
  747.     Tabelle. Optionen:
  748.      -h : zeigt die Nummern in hexadezimaler (sedesimal) Schreibweise
  749.      -o : zeigt die Nummern in oktaler Schreibweise
  750.  
  751.     ASET
  752.     Gebrauch: aset Name Wert
  753.     Beispiel: aset INCLUDE include:
  754.  
  755.      Erzeugt eine Umgebungs-Variable im veralteten Aztec/ARP Format.
  756.  
  757.     ASSIGN
  758.     Gebrauch: assign
  759.           assign Logisch
  760.           assign [-lnp] Log.1 Phys.1 [ ... Log.N Phys.N]
  761.  
  762.      Die erste Form zeigt alle Assigns.
  763.      Die Zweite l÷scht ein Assign.
  764.      Die Dritte weist dem logischen GerΣt 'Logiisch1' das
  765.       physikalische 'Physikalisch1' zu, etc.
  766.  
  767.      -l erzeugt late-binding Assigns (nur unter Kick 2.0)
  768.      -n erzeugt non-binding Assigns (nur unter Kick 2.0)
  769.      -p erzeugt path-Assigns (nur unter Kick 2.0)
  770.      Eine ErklΣrung dieser Assign-Arten findet sich im AmigaDOS
  771.       Handbuch.
  772.  
  773.     BASENAME
  774.     Gebrauch : basename Var Pfad [Pfad ...]
  775.     Beispiel : basename x df0:c/Dir  # setzt x auf "Dir"
  776.            basename y sys:tool/iconed # setzt y auf "iconed"
  777.  
  778.      Setzt die angegebene Variable auf den Dateinamen eines Pfades.
  779.  
  780.     CAT
  781.     Gebrauch : cat [-n][Datei1 ... DateiN]
  782.     Beispiel : cat fasel.txt
  783.  
  784.     Schreibt die angegebene Datei(en) auf die Standard-Ausgabe. Wenn
  785.      keine Datei angegeben wird, wird statt dessen die
  786.      Standard-Eingabe verwendet (Hinweis: ^\ markiert das
  787.      Datei-Ende). CAT ist nur zur Ausgabe von Text-Dateien gedacht.
  788.      Die -n Option nummeriert die ausgegebenen Zeilen.
  789.  
  790.     CD
  791.     Gebrauch : cd [Pfad]
  792.            cd -g GerΣt1 [GerΣt2 .. [GerΣtN] .. ]
  793.  
  794.     Wechselt den aktuelle Ordner. Die Angabe von '..'
  795.      zum Wechseln in den Vaterordner ist erlaubt (allerdings
  796.      handelt es sich dabei um ein Csh-spezifisches Feature -
  797.      normalerweise wird auf dem Amiga "/" verwendet).
  798.  
  799.     In den meisten FΣllen ist die Angabe von 'CD' ⁿberflⁿssig.
  800.      Die einfache Eingabe eines Ordners reicht der Csh.
  801.      Ein einzelnes '~' in der Kommando-Zeile wechselt stets zum
  802.      jeweils letzten aktuellen Ordner.
  803.  
  804.     In zwei FΣllen ist dennoch die Angabe von 'CD' sinnvoll:
  805.  
  806.     Die Eingabe 'cd *tem' wechselt in den Ordner
  807.      dessen Name passt.
  808.  
  809.  
  810.     Die zweite Form erzeugt eine Liste aller Ordner der
  811.      angegebenen GerΣte. Diese wird in der Datei gespeichert, das
  812.      in der Variablen $_qcd angegeben ist (default:
  813.      'Csh:Csh-qcd'). Diese Datei wird nicht erweitert, sondern
  814.      stets ⁿberschrieben. Wenn diese Datei einmal existiert,
  815.      kann mit CD auch in Ordner gewechselt werden, die nicht
  816.      im aktuellen Ordner liegen.
  817.  
  818.     Existieren zwei Ordner, von denen einer hΣufiger
  819.      gebraucht wird, so sollte dieser zuerst in der qcd-Datei stehen.
  820.      Ebenso kann die qcd-Datei sortiert werden (mit 'sort').
  821.  
  822.     Es ist auch m÷glich, eine Abkⁿrzung des Ordners einzugeben. Dazu wird
  823.      kein '*' ben÷tigt. Sollte dann versehentlich der falsche Ordner
  824.      angesprochen werden, so k÷nnen durch Wiederholen der Kommando-Zeile
  825.      (Cursor-Up + Return) alle passenden Ordner angezeigt bekommen.
  826.  
  827.     Au▀erdem k÷nnen logische GerΣte und Assings in die qcd-Datei
  828.      aufgenommen werden. So kann z.B. nach 'PageStream:' gelangt werden,
  829.      indem 'cd page' eingegeben wird.
  830.  
  831.     CD ohne Argumente zeigt den aktuellen Ordner an.
  832.  
  833.     CLASS
  834.     Gebrauch : [-n] Name {type=Argument} [ "actions" {action=Kommando} ]
  835.     Beispiel : class zoo offs=20,dca7c4fd ext=.zoo actions view="zoo l"
  836.  
  837.     Definiert eine neue Klasse von Dateien und die Methoden, die
  838.      auf solche in verschiedenen FΣllen angewendet werden sollen.
  839.      Siehe Abschnitt XIV: Objekte
  840.  
  841.     Optionen : -n alte Definition l÷schen
  842.  
  843.     CLOSE
  844.     Gebrauch : close [Datei-Nummer]
  845.  
  846.     Schlie▀t die angegebene, mit OPEN ge÷ffnete Datei. Ohne
  847.      Angabe einer Datei-Nummer werden alle Dateien geschlossen. S.a.
  848.      FLIST und OPEN.
  849.  
  850.     CLS
  851.     Gebrauch : cls
  852.  
  853.     Ein Alias. L÷scht den Bildschirm, allerdings auch auf
  854.      Terminals, wozu echo ^l nicht reicht.
  855.  
  856.     COPY
  857.     Gebrauch : copy [-udfpm] Datei Datei
  858.     oder     : copy [-udfpm] Datei1 .. DateiN Ord
  859.     oder     : copy [-rudfp] Ord1...OrdN Datei1...DateiN Ord
  860.  
  861.     Optionen:
  862.     -r rekursiv, auch Unterordner kopieren.
  863.     -u update, nicht kopieren, wenn eine neuere Version existiert.
  864.     -f freshen, nicht kopieren, wenn die Ziel-Datei nicht
  865.        existiert oder neuer ist.
  866.     -d Datei-Datum nicht mitkopieren.
  867.     -p Sicherheits-Bits nicht mitkopieren.
  868.     -m l÷scht das Original. Funktioniert nicht mit -r zusammen.
  869.  
  870.     Beispiel : copy -r dh0: dh2:
  871.  
  872.     Kopiert Ordner oder Dateien. Wenn Ordner
  873.      kopiert werden sollen, mu▀ die Option -r angegeben werden,
  874.      um auch Unterverzeichnisse mitzukopieren. Sonst werden nur
  875.      die Dateien der oberen Ebene kopiert.
  876.  
  877.     Es werden alle Dateien, die gerade kopiert werden, und alle
  878.      Ordner, die gerade angelegt werden, angezeigt. Diese
  879.      Ausgabe kann mit Ausgabe-Umlenkungen vermieden werden.
  880.      Z.B.: copy -r dh0: dh2: >NIL:
  881.  
  882.     COPY bricht nach den aktuellen Datei ab, falls CTRL-C
  883.      gedrⁿckt wird.
  884.  
  885.     COPY setzt normalerweise das Datum des Ziel-Dateien auf das
  886.      des Quell-Dateien. Dies kann mit -d verhindert werden.
  887.  
  888.     Analog werden die Sicherheits-Bits behandelt. Dies wird
  889.      mit -p verhindert. Das Archive-Bit wird immer gel÷scht.
  890.  
  891.     COPY erzeugt jetzt den Ziel-Ordner selbst, falls er
  892.      noch nicht existiert, falls 'copy [-r] Ord Ord' eingegeben
  893.      wurde. Bei der Eingabe von 'copy Datei Datei Datei Ord' mu▀
  894.      'Ord' jedoch schon existieren.
  895.  
  896.  
  897.     CP
  898.     Synonym zu COPY.
  899.  
  900.     DATE
  901.     Gebrauch :date [-sr] [neues Datum] [neue Zeit]
  902.     Beispiel : date Wednesday # gemeint ist N─CHSTER Mittwoch
  903.  
  904.     Wird verwendet um das System-Datum und/oder -Zeit zu setzen. Alle
  905.      Standard-Optionen k÷nnen verwendet werden(yesterday, tomorrow, etc.).
  906.      Fⁿhrende Nullen sind nicht erforderlich.
  907.      Ohne Parameter wird (aktuelle) DD-MMM-YY HH:MM:SS angezeigt.
  908.      Optionen:
  909.      -s speichert die aktuelle Zeit
  910.      -r zeigt die verstrichene Zeit seit der gespeicherten aufs
  911.       Hundertstel genau an. (Sinnvoll fⁿr Stapeldateien)
  912.  
  913.     DEC
  914.     Gebrauch : dec Variablenname [Wert]
  915.     Beispiel : dec abc
  916.  
  917.     Decrementiert (verringert) das Numerische ─quivalent der Variablen um
  918.      den angegebenen Wert (Vorgabe ist 1) und setzt das
  919.      ASCII-Zeichenketten-Resultat zurⁿck in die Variable.
  920.  
  921.     DELETE
  922.     Gebrauch : delete [-p][-r] Datei1 [..DateiN]
  923.     Beispiel : delete fasel.txt frust.c
  924.  
  925.     L÷sche die angegebenen Dateien. Das Kommando gibt immer Fehlerkode0
  926.      zurⁿck. Leere Ordner k÷nnen gel÷scht werden. Die Option '-r'
  927.      l÷scht nicht-leere Ordner indem es alle Unterordner rekursiv l÷scht.
  928.     Wird die Option '-p' angegeben, k÷nnen l÷schgeschⁿtzte Dateien
  929.      gel÷scht werden.
  930.     Beim L÷schen mit Suchmustern werden die Dateien aufgelistet wie sie
  931.      gel÷scht werden. Dieses kann unterdrⁿckt werden, indem nach nil:
  932.      umgeleitet wird.
  933.     Wird die Option -q angegeben, werden keine Fehlermeldungen ausgegeben,
  934.      wenn eine zu l÷schende Datei nicht existiert oder nicht gel÷scht
  935.      werden konnte.
  936.  
  937.     DIR
  938.     Gebrauch : dir [-abcdfhiklnoqstuv] [-z lformat] [Pfad Pfad ... ]
  939.     Beispiel : dir -ts downloads:
  940.            dir -lz "%7s %-.16n %m" *.c
  941.     Optionen:
  942.      -d nur Ordner listen
  943.      -f nur Dateien listen
  944.      -h nur Dateien listen, die nicht mit einem Punkt anfangen, mit
  945.         '.info' enden oder das h-Flag gesetzt haben.
  946.      -s kurze Multi(4)-Kolonen Anzeige
  947.      -c keine FarbΣnderung fⁿr Ordner
  948.      -q zeigt keine BlocklΣngen an
  949.      -o zeigt Datei-Kommentare an
  950.      -n nur Namen anzeigen
  951.      -p volle Pfadnamen anzeigen und Ordner-Titel unterdrⁿcken
  952.      -a zeigt das Alter aller Dateien im Format Tage Stunden:Minuten an
  953.      -i identifiziert jede Datei, zeigt den Typ statt des Datums
  954.         Siehe Kapitel XIV CLASSES
  955.      -v summiert rekursiv alle LΣngen der Dateien in einem Ordner
  956.      -l sortiert Dateien nach deren LΣnge, lΣngste zuerst.
  957.      -t sortiert Dateien nach deren Zeit, neueste zuerst.
  958.      -k sortiert Dateien nach deren Klasse
  959.      -b sortiert die Dateien rⁿckwΣrts
  960.      -g gibt Ordner am Anfang aus
  961.      -e gibt Ordner am Ende aus
  962.      -u es mⁿssen genau zwei Ordner gegeben sein. Zeigt Dateien,
  963.         die nur im ersten Ordner, in beiden oder im Zweiten vorkommen
  964.      -z wΣhlbares Ausgabeformat
  965.  
  966.     Zeigt einen Ordner mit angegebenen Dateien. Voreingestellte Ausgabe
  967.      zeigt Datum, Sicherheits-Bits, Block-Gr÷sse, Byte-Gr÷sse und gesammten
  968.      Platzverbrauch an.
  969.     Sicherheits-Bits beinhalten neue 1.2/1.3 Bits (siehe protect) und
  970.      ein 'c'-Bit welches anzeigt, das diese Datei einen Kommentar hat.
  971.     Dateien werden alphabetisch sortiert, ohne auf Gross-/Klein-Schreibung
  972.      zu achten. Ordner werden rot ausgegeben (ausser bei -c).
  973.     Dir beachtet die Breite des Fensters.
  974.  
  975.     Die lformat-Zeichenkette wird verwendet, um ein eigenes Ausgabeformat
  976.      zu erstellen. Alles andere gilt nicht. Die Zeichenkette kann folgende
  977.      Zeichen enthalten:
  978.      %a Alter        %l LF wenn Kommentar   %s Gr÷sse
  979.      %b Block-Gr÷sse     %m Multi-Kolonne       %t Zeit
  980.      %c c-Bit (Komment.) %n Name        %u Gr÷sse in K
  981.      %d Datum        %o Kommentar       %v Ord. Gr÷. in engl.
  982.      %f hsparwed Bits    %p Name mit Pfad       %w Ord. Gr÷. in Kb
  983.      %i d-Bit f. Ord.    %q Name mit '/'    %x ▄bersetztes Datum
  984.      %k Klasse (Art)     %r Gr÷sse in engl.
  985.  
  986.     Zwischen dem '%' und dem bezeichnenden Buchstaben kann auf Wunsch
  987.      eine Feld-Weite angegeben werden. Wenn die Zahl von einem '-'
  988.      angefⁿhrt wird, so wird der Feld-Inhalt linksbⁿndig gesetzt. Bei
  989.      einem Punkt wird der Inhalt bei Bedarf auf die Feld-Weite gekⁿrzt.
  990.      Wenn die Format-Zeichenkette ein %m enthΣlt, wird Cshell versuchen,
  991.      mehr als einen Eintrag auf einer Zeile auszugeben. Die Kolonnenbreite
  992.      ist die Feld-Weite des %m-Eintrages. Wenn dieser fehlt, wird die
  993.      Breite der ersten Datei angenommen. Wenn eine Datei lΣnger ist,
  994.      werden zwei Kolonnen verwendet.
  995.  
  996.     DISKCHANGE
  997.     Gebrauch : diskchange GerΣt
  998.     Beispiel:    diskchange df2: # das externe 5.25" LW wurde
  999.                        gewechselt
  1000.  
  1001.     Wie AmigaDOS diskchange. Sollte nur bei physikalisches GerΣten
  1002.      angewendet werden.
  1003.  
  1004.     ECHO
  1005.     Gebrauch : echo [-en] Zeichenfolge
  1006.     Beispiel : echo hi there
  1007.     Ergebnis : hi there
  1008.  
  1009.     Gibt die gegebene Zeichenfolge wieder. Wenn '-n' angegeben wurde, wird
  1010.      kein Wagenrⁿcklauf angefⁿgt. Mit '-e' geht die Ausgabe auf die
  1011.      Standardausgabe.
  1012.  
  1013.     ELSE
  1014.     Gebrauch : else ; Kommando
  1015.     Beispiel : if -f fasel.c ; else ; echo "Nicht da" ; endif
  1016.  
  1017.     Die Else-Anweisung muss von einer IF-Bedingung angefⁿhrt werden.
  1018.  
  1019.     ENDIF
  1020.     Gebrauch : endif
  1021.  
  1022.     Das Ende einer If-Anweisung.
  1023.  
  1024.     Achtung, wenn von einer Stapeldatei mit unterminierten IF-
  1025.      Anweisungen zurⁿckgekehrt wird, und das letzte IF falsch war,wird der
  1026.      Prompt in einen Unterstrich ('_') verwandelt, und keine Anweisungen
  1027.      werden ausgefⁿhrt bis 'endif' eingegeben wird.
  1028.  
  1029.     ERROR
  1030.     Gebrauch : error n
  1031.  
  1032.     Generiert einen Rⁿckgabewert (Fehlerkode) n.
  1033.  
  1034.     EXEC
  1035.     Gebrauch : exec [-i] Kommando [Argumente]
  1036.     Beispiel : set cmd "dir ram:"
  1037.            exec $cmd  # wⁿrde ohne exec nicht funktionieren
  1038.  
  1039.     Fⁿhrt das angegebene Kommando aus. 'exec Kommando' ist gleichbedeutend
  1040.      zu 'Kommando', nur k÷nnen Variablen angegeben werden, um Kommandonamen
  1041.      anzugeben.
  1042.     Achtung, die Kommandozeile wird ZWEIMAL interpretiert! Beispiele:
  1043.      set a dir ram:; exec $a # richtig
  1044.      set a mkdir; exec $a "Mein Ordner" # falsch! Macht 2 Ordner.
  1045.  
  1046.     Exec gibt den Wert zurⁿck, den das auzufⁿhrende Kommando zurⁿckgibt,
  1047.      es sei denn die Option '-i' (ignorieren) ist gesetzt, was immer 0
  1048.      ergibt.
  1049.  
  1050.     FAULT
  1051.     Gebrauch : fault Fehler1 .. FehlerN
  1052.     Beispiel : fault 205 212
  1053.  
  1054.     Wie AmigaDOS fault, gibt angegebene Fehlermeldungen zurⁿck.
  1055.  
  1056.     FILENOTE
  1057.     Gebrauch : filenote Datei1 .. DateiN Kommentar
  1058.            filenote -s Datei1...DateiN
  1059.  
  1060.     Die erste Form setzt die AmigaDOS-Kommentarzeile der genannten Datei.
  1061.     Die zweite Form zeigt die Kommentare der genannten Dateien an.
  1062.  
  1063.     FLIST
  1064.     Gebrauch : flist
  1065.  
  1066.     Listet die Dateinummern der Dateien, die durch open ge÷ffnet wurden.
  1067.     Siehe OPEN und CLOSE.
  1068.  
  1069.     FLTLOWER
  1070.     Gebrauch : fltlower
  1071.     Beispiel : dir | fltlower
  1072.     Oder : fltlower <readme
  1073.  
  1074.     Filterbefehl. Wandelt alphanumerische Texte in Kleinschrift.
  1075.  
  1076.     FLTUPPER
  1077.     Das gleiche wie fltlower, nur dieses wandelt in Grossschrift.
  1078.  
  1079.     FOREACH
  1080.     Gebrauch : foreach [-v] VarName ( Zeichenkette ) Kommando
  1081.     Beispiel : foreach i ( a b c d ) "echo -n $i;echo \" ok. \""
  1082.     Ergebnis : a ok.
  1083.            b ok.
  1084.            c ok.
  1085.            d ok.
  1086.  
  1087.     Die Zeichenkette wird in Argumente aufgeteilt. Jedes Argument wird der
  1088.      Reihe nach der Variablen 'VarName' zugewiesen und 'Kommando' wird aus-
  1089.      gefⁿhrt. Mehrere Kommandos sollen in Anfⁿhrungszeichen gesetzt werden.
  1090.  
  1091.     Foreach ist sehr nⁿtzlich fⁿr die Interpretation von Argumenten in
  1092.      einem Alias.
  1093.  
  1094.     Beispiel:
  1095.      alias showme "foreach i ( *.pic ) viewilbm $i"
  1096.  
  1097.     Unter der Annahme, dass sich a.pic und b.pic im aktuellen Ordner
  1098.      befinden, wird folgendes passieren:
  1099.       viewilbm a.pic
  1100.       viewilbm b.pic
  1101.  
  1102.     Das Flag -v sorgt dafⁿr, dass die Argumente angezeigt werden, wann
  1103.      immer ein Kommando ausgefⁿhrt wird. Alle 'for...'-Befehle k÷nnen mit
  1104.      CTRL-D abgebrochen werden.
  1105.  
  1106.     FOREVER
  1107.     Gebrauch : forever Kommando
  1108.     oder :     forever "Kommando1;...;KommandoN"
  1109.  
  1110.     Die angegebenen Befehle werden immer und immer wieder ausgefⁿhrt. Fⁿr
  1111.      immer. Die Ausfⁿhrung stoppt, wird CTRL-C oder CTRL-D gedrⁿckt, oder
  1112.      wenn die Kommandos einen Fehler liefern.
  1113.  
  1114.     FORLINE
  1115.     Gebrauch : forline Variable Dateiname Kommando
  1116.     oder :     forline Variable Dateiname "Kommando1;...;KommandoN"
  1117.     Beispiel : forline i RAM:temp "echo line $_linenum=$i"
  1118.  
  1119.     Fⁿr jede ASCII-Zeile, angegebener Dateien, werden die angefⁿhrten
  1120.      Befehle ausgefⁿhrt und Variable zeigt auf Zeileninhalt. Die System-
  1121.      Variable _linenum kann ⁿberprⁿft werden, um die Nummer der gerade
  1122.      gelesenen Zeile zu finden.
  1123.      Wenn die Standard-Eingabe (STDIN, Grossschreibung beachten) als
  1124.      Eingabe angegeben wird, dann werden die Zeilen von der
  1125.      Standard-Eingabe gelesen, also Tastatur oder Pipe.
  1126.  
  1127.     FORNUM
  1128.     Gebrauch : fornum [-v] Variable n1 n2 Kommando
  1129.     oder :     fornum [-v] -s Var n1 n2 SchrittWeite Kommando
  1130.     Beispiel : fornum -v x 1 10 echo $x
  1131.     oder :     fornum -s x 10 1 -1 echo $x # zΣhlt rⁿckwΣrts
  1132.  
  1133.     Fⁿhrt Kommando fⁿr jeden numerischen Wert von x zwischen n1 und n2 aus.
  1134.      Wenn mehr als ein Kommando angefⁿhrt ist, oder umgeleitet wurde, dann
  1135.      Befehle in Anfⁿhrungszeichen setzen.
  1136.      Mit Option '-v' werden die laufenden Zahlen ausgegeben.
  1137.      Mit Option '-s' kann eine Schrittweite angegeben werden, wenn diese
  1138.      negativ ist, wird rⁿckwΣrts gezΣhlt.
  1139.  
  1140.     GETENV
  1141.     Gebrauch : getenv [Shellvar] envvar
  1142.  
  1143.     Holt den Wert einer ARP- oder ENV:-Variablen (ARP-Liste wird zuerst
  1144.      durchsucht) und speichert ihn in der Shell-Variablen 'shellvar' ab.
  1145.     Wenn Shellvar ausgelassen wird, wird der Wert der ENV:-Variablen auf
  1146.      der Standard-Ausgabe ausgegeben.
  1147.  
  1148.     GOTO
  1149.     Gebrauch : goto label
  1150.     Beispiel : label start
  1151.            echo "Am Start"
  1152.            dir ram:
  1153.            goto start
  1154.  
  1155.     Fahre bei der angegebenen Marke (label) weiter. Dieses Kommando
  1156.      kann nur in einer Stapeldatei verwendet werden. Die Sprungmarken
  1157.      k÷nnen sich vor oder nach dem GOTO Kommando befinden. Es
  1158.      ist auch erlaubt aus IF's rauszuspringen.
  1159.  
  1160.     HEAD
  1161.     Gebrauch : head Dateiname [Wert]
  1162.     Beispiel : head readme 20
  1163.  
  1164.     Zeige "Wert" erste Zeilen der Datei "Dateiname". Wenn "Wert" nicht
  1165.      angegeben wurde, werden die ersten 10 Zeilen angezeigt.
  1166.      Meist interessant in Verbindung mit Pipe.
  1167.  
  1168.     HELP
  1169.     Gebrauch : help
  1170.     Beispiel : help
  1171.  
  1172.     Zeigt die Liste aller Befehle (KEIN Argument). Die Befehlsliste
  1173.      wird in der Reihenfolge angezeigt, in welcher sie auch durchsucht
  1174.      wird. Das hat zur Folge, da▀, wenn nur ein Teil eines Kommandonamens
  1175.      eingegeben wird, das erste Kommando in der Liste, der mit diesem
  1176.      Teil beginnt, ausgefⁿhrt wird. GrundsΣtzlich sollte ein genⁿgend
  1177.      grosser Teil angegeben werden damit die Wahl eindeutig ist.
  1178.  
  1179.     HISTORY
  1180.     Gebrauch : history [Zeichenkette]
  1181.     Beispiel : history
  1182.  
  1183.     Zeigt eine mit Nummern versehene Liste der zuletzt eingegebenen
  1184.      Befehle. Die Gr÷sse dieser Liste kann durch die Variable _history
  1185.      eingestellt werden. Wenn eine 'Zeichenkette' angegeben wurde, werden
  1186.      nur diejenigen EintrΣge angezeigt, auf die diese Zeichenkette
  1187.      zutrifft.
  1188.  
  1189.     HOWMANY
  1190.     Gebrauch : howmany
  1191.  
  1192.     Dieses Kommando zeigt an, wieviele Shells momentan im System am
  1193.      laufen sind.
  1194.  
  1195.     HTYPE
  1196.     Gebrauch : htype [-r] Datei1 .. Datein
  1197.  
  1198.     Zeigt den Inhalt der angegegbenen Dateien im Hexadezimal
  1199.      (sedesimal) und ASCII Format an (entspricht dem Ergebnis des
  1200.      CLI Befehls "Type Datei opt h"). Speziell nⁿtzlich zum
  1201.      Anschauen von BinΣrdateien. Die Option '-r' zeigt alle Dateien
  1202.      in einem Ordner an.
  1203.  
  1204.     IF
  1205.     Gebrauch : if [-n] Argument Bedingung Argument ;
  1206.     oder     : if [-n] Argument
  1207.     oder     : if [-n] -f Datei
  1208.     oder     : if [-n] -d Datei/Ordner
  1209.     oder     : if [-n] -m
  1210.     oder     : if [-n] -t Datei Datei1 .. DateiN
  1211.     oder     : if [-n] -r RPN-Ausdruck
  1212.     oder     : if [-n] -v varname
  1213.     oder     : if [-n] -o Zeichen arg ... arg
  1214.  
  1215.     Testet, ob ein Argument eine Bedingung in Bezug auf ein zweites
  1216.      Argument erfⁿllt. Als Bedingungen sind zugelassen:
  1217.      <, >, =, und Kombinationen.
  1218.      Demzufolge bedeutet <> "ungleich", >= "gr÷sser oder gleich",
  1219.      und so weiter...
  1220.     Wenn die Argumente nicht numerische Argumente sind, werden sie als
  1221.      Zeichenkette verglichen.
  1222.      Normalerweise wird als Argument entweder eine Konstante oder eine
  1223.      Variable ($varname) verwendet.
  1224.  
  1225.     Die zweite Form testet auf Vorhandensein des Arguments. Wenn das
  1226.      Argument eine Leerzeichenkette "" ist, ist die Bedingung FALSCH, sonst
  1227.      WAHR.
  1228.  
  1229.     Die dritte Form mit der Option -f testet auf Existieren der
  1230.      angegebenen Datei.
  1231.  
  1232.     Option -d testet die Art des angegebenen Objekts: Wenn es sich um
  1233.     einen Ordner handelt, ist die Bedingung WAHR, wenn es eine Datei
  1234.     ist oder nicht vorhanden, ist die Bedingung FALSCH.
  1235.  
  1236.     Option -m kann verwendet werden, um das Vorhandensein von
  1237.     FAST-Memory zu prⁿfen.
  1238.     Beispiel (kann im login.sh Datei eingebaut werden):
  1239.     if -m; resident -d lc1 lc2 blink; endif
  1240.  
  1241.     Wird die Form -t verwendet, werden Datum und Zeit der ersten Datei
  1242.      mit allen anderen verglichen; wenn die erste Datei jⁿnger als alle
  1243.      anderen, ist die Bedingung FALSCH, sonst WAHR. Wenn
  1244.      eine Datei nicht existiert, wird sie als Σlter angenommen.
  1245.      Diese Option ist speziell nⁿtzlich um 'makefiles' ohne ein
  1246.      eigentliches 'MAKE' Programm zu erstellen.
  1247.      Beispiel:
  1248.       if -t test.o test.asm test.i ; asm -o test.o test.asm ; endif
  1249.  
  1250.     Die Option -r berechnet einen gegebenen RPN-Ausdruck (siehe RPN
  1251.      fⁿr genauere ErlΣuterung): Wenn der Wert zuoberst auf dem RPN
  1252.      Stapel 0 ist, gilt die Bedingung als FALSCH, sonst WAHR.
  1253.  
  1254.     Die Option -o testet auf eine Option 'Zeichen' im Rest des
  1255.      Arguments.
  1256.       Beispiel: if -o r -rp ram:comm1.c ergibt WAHR.
  1257.  
  1258.     Option -n kehrt das Ergebnis der Bedingung um.
  1259.      Um zu testen, ob eine bestimmte Variable definiert wurde, kann
  1260.      'if -v varname' verwendet werden.
  1261.  
  1262.     Wenn das Kommando IF in der Kommandozeile verwendet wird und die
  1263.      Bedingung FALSCH war, wird als Prompt solange ein '_' verwendet
  1264.      und alle eingegebenen Befehle ignoriert, bis ein ELSE oder ENDIF
  1265.      Kommando ausgefⁿhrt wird.
  1266.  
  1267.     INC
  1268.     Gebrauch : inc VarName [Wert]
  1269.     Beispiel : set abc 5;inc abc 5;echo $abc
  1270.         Ergebnis : 10
  1271.  
  1272.     Erh÷ht den Inhalt einer Variable um den angegebenen Wert (Wenn
  1273.      nichts angegeben wurde: um 1) und schreibt das Resultat als
  1274.      ASCII-Zeichenkette zurⁿck in die Variable 'VarName'.
  1275.  
  1276.     INFO
  1277.     Gebrauch : info [Path1 ... PathN]
  1278.  
  1279.     Wenn INFO ohne Argumente aufgerufen wird, gibt es Information
  1280.      ⁿber alle logischen und physikalischen GerΣte (devices) aus.
  1281.      Werden ein oder mehrere Pfade angegeben, wird nur die Information
  1282.      ⁿber die dazugeh÷rigen GerΣte angezeigt.
  1283.  
  1284.     INPUT
  1285.     Gebrauch : input [-s] Var1 ... VarN
  1286.     Beispiel : input abc
  1287.  
  1288.     Schreibt Daten von der Standard-Eingabe (oder einer umgeleiteten
  1289.      Ausgabe, oder von einer Pipe) in eine Variable. Die nΣchste Zeile,
  1290.      die als Eingabe kommt, wird in Worte aufgeteilt (wenn sie nicht in
  1291.      Anfⁿhrungszeichen gesetzt wurde) und in die Variable geschrieben.
  1292.      Falls die Option -s eingeschalten wurde, wird die Eingabezeile als
  1293.      Ganzes genommen, mitsamt der Leerzeichen. Option -r schaltet die
  1294.      Eingabekonsole in der Einzelzeichenmodus bevor die Daten
  1295.      eingelesen werden (d.h. es wird nicht auf ein abschliessendes
  1296.      RETURN gewartet). Diese Option muss mit Vorsicht eingesetzt
  1297.      werden.
  1298.  
  1299.     JOIN
  1300.     Gebrauch : join [-r] Datei1..DateiN Zieldatei
  1301.     Beispiel : join teil1 teil2 teil3 TeilGanz
  1302.  
  1303.     Verbindet die angegebenen Dateien und erzeugt 'Zieldatei'. Wenn
  1304.      'Zieldatei' schon existiert, wird eine Fehlermeldung angezeigt und
  1305.      das Kommando wird abgebrochen, es sei denn Option -r (ersetze =
  1306.      replace) wurde angegeben.
  1307.  
  1308.     KEYMAP
  1309.     Gebrauch : keymap nummer {taste=funktion}
  1310.     Beispiel : keymap 0 1030=4 1032=12
  1311.  
  1312.     Definiert eine Tastenbelegung fⁿr Editiermodus der Csh
  1313.      Kommandozeile. Siehe auch Kapitel XV.
  1314.  
  1315.     LABEL
  1316.     Gebrauch : label name
  1317.  
  1318.     Setzt eine Sprungmarke an dieser Stelle. Wird in Stapeldateien
  1319.      verwendet, dann kann mit GOTO zu einer solchen Marke gesprungen
  1320.      werden.
  1321.  
  1322.     LINECNT
  1323.     Ein Filter das die Anzahl der Zeilen zΣhlt, die es als Eingabe
  1324.      (Standard-Eingabe) erhΣlt und schreibt diese Anzahl dann auf die
  1325.      Standard-Ausgabe.
  1326.  
  1327.     LOCAL
  1328.     Gebrauch : local [Var1 ... VarN]
  1329.  
  1330.     Generiert eine oder mehrere lokale Variablen. Diese Variablen
  1331.      verschwinden am Ende des 'alias' oder der Stapeldatei und k÷nnen
  1332.      nicht von anderen 'alias' oder Stapeldateien angesprochen werden.
  1333.     Wird kein Argument angegeben, zeigt das Kommando alle lokalen
  1334.      Variablen und deren Inhalt an.
  1335.  
  1336.     LS
  1337.     Gleichbedeutend zum Kommando DIR.
  1338.  
  1339.     MD
  1340.     Gleichbedeutend zum Kommando MKDIR.
  1341.  
  1342.     MAN
  1343.     Gebrauch : man Kommando1 ... KommandoN
  1344.     Beispiel : man mkdir
  1345.  
  1346.     Zeigt Information ⁿber ein Shell Kommando oder andere
  1347.      Schlⁿsselw÷rter an. Dies beinhaltet insbesondere alle speziellen
  1348.      _variablen, sowie verschiedene Schlⁿsselw÷rter: SUCHMUSTER, PIPES,
  1349.      EDITIEREN, START und andere.
  1350.     Das spezielle Alias 'manlist' kann verwendet werden, um eine Liste
  1351.      ALLER Schlⁿsselw÷rter zu erhalten, die MAN unterstⁿtzt.
  1352.  
  1353.     Die Variable _man muss auf den Pfad der .doc Datei gesetzt werden:
  1354.      set _man dh1:docs/aliases.doc Csh:Csh.deutsch.doc
  1355.  
  1356.     Um eigene .doc Dateien zu erstellen, mⁿssen vor alle Schⁿsselw÷rter
  1357.      vier (4) Leerzeichen gestellt werden. 'man' zeigt dann alle Zeilen
  1358.      bis es auf eine Zeile trifft, deren erste Zeichen ein alpha-
  1359.      numerisches ist oder vier vorangestellte Leerzeichen sind.
  1360.  
  1361.     MEM
  1362.     Gebrauch : mem [-cfqu]
  1363.  
  1364.     Optionen:
  1365.      -c zeigt den freien Speicher im CHIP-Memory Bereich
  1366.      -f zeigt den freien Speicher im FAST-Memory Bereich
  1367.      -q gibt nur die Zahl des freien Speichers ohne Text aus
  1368.      -s merkt sich die Menge des momentan freien Speichers
  1369.      -r zeigt den freien Speicher relativ zum letzten gemerkten Zustand.
  1370.      -l rΣumt den Speicher auf, macht soviel Speicher wie m÷glich frei.
  1371.  
  1372.     MENU
  1373.     Gebrauch : menu [-n] [ Titel Menupunkt1 ... MenupunktN ]
  1374.     Beispiel : menu Shell JrComm,,j Rename,"rename ",r quit
  1375.  
  1376.     HΣngt ein zusΣtzliches Pulldownmenu an das aktive Shell Fenster.
  1377.     Bis zu sechs Menus mit je 16 Menupunkten k÷nnen installiert
  1378.      werden.
  1379.  
  1380.     Wenn als 'Menupunkt' nur eine Zeichenkette angegeben wurde, wird ein
  1381.      Menupunkt mit demselben Namen erstellt. Bei der Anwahl eines
  1382.      solchen Menupunktes wird diese Zeichenkette dann beim Prompt eingefⁿgt
  1383.      und ausgefⁿhrt.
  1384.  
  1385.     Wenn ein Komma mit einer nachfolgenden zweiten Zeichenkette angegeben
  1386.      wurde, wird diese zweite Zeichenkette als Kommando eingefⁿgt und
  1387.      ausgefⁿhrt. Bei dieser Variante muss ein ^M (RETURN) von Hand
  1388.      hinzugefⁿgt werden, falls das Kommando direkt ausgefⁿhrt werden
  1389.      soll.
  1390.  
  1391.     Wenn auch noch ein zweites Komma mit einem nachfolgenden
  1392.      Zeichen folgt, wird dieser als Tastenkombination fⁿr den
  1393.      Menupunkt genommen. (In Zukunft wird Gross-/Kleinschreibung eine
  1394.      Rolle spielen, deshalb muss Kleinschrift verwendet werden!)
  1395.  
  1396.     Wenn aus irgend einem Grund das Pulldownmenu kaputtgegangen ist,
  1397.      kann einfach ein 'menu' Kommando alleine ausgefⁿhrt werden.
  1398.  
  1399.     Option -n entfernt alle Menupunkte.
  1400.     Als Beispiel ist Csh:menu.sh anzusehen.
  1401.  
  1402.     MKDIR
  1403.     Gebrauch : mkdir Name Name Name...
  1404.     Beispiel : mkdir df0:stoff
  1405.  
  1406.     Erstellt einen neueen Ordner.
  1407.  
  1408.     MV
  1409.     Gleichbedeutend zum Kommando RENAME.
  1410.     Es ist nicht m÷glich ⁿber GerΣte hinweg Dateien zu bewegen, etwa
  1411.      von einer Partition auf eine andere. Ein solches Kommando kann
  1412.      mit einem Alias einfach simuliert werden
  1413.      (ohne Sicherheitsabfrage!):
  1414.       alias newmv "%f1%f2 copy $f1 $f2;rm $f1"
  1415.  
  1416.  
  1417.     OPEN
  1418.     Gebrauch : open Dateiname Dateimodus Dateinummer
  1419.     Beispiel : open RAM:data w 1
  1420.  
  1421.     Dieses Kommando erlaubt das ╓ffnen einer Datei, ein darauf folgendes
  1422.      Umleiten beliebig vieler Befehle in diese Datei und ein Schliessen
  1423.      der Datei zum Schluss.
  1424.     'Dateiname' ist ein gⁿltiger AmigaDOS Dateiname, als 'Dateimodus'
  1425.      sind entweder "r" zum Lesen oder "w" zum Schreiben erlaubt,
  1426.     'Dateinummer' muss eine Zahl zwischen 1 und 10 sein.
  1427.     Um ein Programm von oder zu einer ge÷ffneten Datei umzulenken, wird
  1428.      als Umleitungsdateiname ein Punkt '.' gefolgt von der 'Dateinummer'
  1429.      verwendet. Es sind nur 10 gleichzeitig ge÷ffnete Dateien zulΣssig.
  1430.     Dazu ein komplettes Beispiel:
  1431.  
  1432.         open RAM:data w 1
  1433.         echo -n 2+2= >.1
  1434.         rpn 2 2 + . CR >.1
  1435.         close 1
  1436.         type RAM:data    # zeigt 2+2=4
  1437.  
  1438.     Siehe auch CLOSE, FLIST.
  1439.  
  1440.     PATH
  1441.     Gebrauch : path [-r] [Ordner1 ... OrdnerN]
  1442.  
  1443.     Ohne ein Argument gibt das Kommando die Liste aller AmigaDOS Pfade
  1444.      aus. Sonst wird 'Ordner' zum Pfad hinzugefⁿgt, wobei
  1445.      Doppeleintragungen vermieden werden.
  1446.     Die Option '-r' l÷scht die gesamte (vorhandene) Pfadliste.
  1447.  
  1448.     PRI
  1449.     Gebrauch : pri Clinummer Pri
  1450.     Beispiel : pri 3 5   # Setzt PrioritΣt von cli #3 auf 5
  1451.  
  1452.     ─ndert die PrioritΣt des angegebenen Tasks (Das PS Kommando kann
  1453.      dazu verwendet werden, die 'Clinummer' herauszufinden). Wenn als
  1454.      'Clinummer' 0 angegeben wurde, wird die PrioritΣt des aktuellen
  1455.      Tasks (derjenige, der das Kommando ausfⁿhrt) verΣndert. Dies ist
  1456.      sinnvoll fⁿr Stapeldateien.
  1457.  
  1458.  
  1459.     PROTECT
  1460.     Gebrauch : protect Datei1 ... DateiN [modus] flags
  1461.     Beispiel : protect MeineDatei +rwe
  1462.  
  1463.     Setzt AMIGADOS Sicherheits-Bits fⁿr die angegebenen Dateien.
  1464.     M÷gliche Bits sind: h, s, p, a, r, w, e, d.
  1465.     (Siehe auch AmigaDOS Manual)
  1466.     Modus:
  1467.      + Setzt die angegebenen Flags (alle anderen bleiben)
  1468.      - L÷scht die angegebenen Flags (alle anderen bleiben)
  1469.      = Setzt die angegebenen Flags (alle anderen werden gel÷scht)
  1470.     Wenn kein Modus angegeben wird, wird '=' als Vorgabe-Modus angenommen.
  1471.     Das Archiv-Flag (a), wird jeweils, sofern nichts anderes angegeben
  1472.      wurde, gel÷scht.
  1473.  
  1474.     PS
  1475.     Gebrauch : ps [Kommandoname1 ... KommandonameN]
  1476.  
  1477.     Gibt einen Status ⁿber alle CLI Processe z.B:
  1478.  
  1479.     Proc Command Name    CLI Type    Pri.    Address    Directory
  1480.     * 1  Csh        Initial CLI      0     97b0    Stuff:shell
  1481.       2  clock        Background    -10     2101a8    Workdisk:
  1482.       3  emacs        Background      0     212f58    Stuff:shell
  1483.       4  VT100        Background      0     227328    Workdisk:
  1484.  
  1485.     Address ist die Speicheradresse des Tasks, Ordner ist der aktuelle
  1486.      Ordner des jeweiligen Commands (Kommandos). Der aktuelle
  1487.      CLI wird mit einem Stern in der ersten Spalte markiert.
  1488.  
  1489.     Optionen:
  1490.      -l Zeigt den kompletten Pfad der Kommandos
  1491.      -e Entfernt das Argument aus der Task-Liste (Wird ⁿbersprungen)
  1492.  
  1493.     PWD
  1494.     Gebrauch : pwd
  1495.  
  1496.     Setzt die Variable _cwd auf den aktuellen Pfad und zeigt diesen
  1497.      an.
  1498.  
  1499.     QSORT
  1500.     Gebrauch : qsort [-r] <Eingabe >Ausgabe
  1501.  
  1502.     Dieses Filter sortiert die 'Eingabe' nach 'Ausgabe'.
  1503.     Die Option -r sortiert rⁿckwΣrts.
  1504.  
  1505.     QUIT
  1506.     Gebrauch : quit
  1507.  
  1508.     VerlΣsst die Shell. Achtung, wurde die Csh von der normalen
  1509.      AmigaShell in shell-startup gestartet, werden jetzt erst die nach
  1510.      'Csh' folgenden Befehle gestartet.
  1511.  
  1512.     RBACK
  1513.     Gebrauch : rback Kommando
  1514.  
  1515.     Startet ein Kommando in einem Hintergrund-Process. Ausgaben werden
  1516.      NICHT sichtbar. Abfragen des Kommandos, k÷nnen nicht entgegengenommen
  1517.      werden. rback entspricht 'run command >NIL: <NIL:'. Anstatt rback,
  1518.      ist es m÷glich am Ende der Zeile ein '&' anfⁿgen. Die Variable
  1519.      $_newproc enthΣlt die CLINummer des neu gestarteten Processes.
  1520.  
  1521.     Achtung, rback kann keine internen Csh-Kommandos starten.
  1522.      Soll eine Unter-Shell gestartet werden, ist dies z.B. wie
  1523.      folgt zu geschehen : rback Csh -c "copy ram:temp prt:;rm ram:temp
  1524.  
  1525.     READFILE
  1526.     Gebrauch : readfile Variablenname [Dateiname]
  1527.  
  1528.     LΣdt eine ASCII Datei und weist den Inhalt einer Variable zu.
  1529.      Jede Zeile wird zu einem Wort in der sich ergebenden Zeichenkette.
  1530.      Wenn keine Datei angegeben wird, wird von der Standard Eingabe
  1531.      gelesen.
  1532.  
  1533.     RENAME
  1534.     Gebrauch : rename QuellDatei ZielDatei
  1535.     oder     : rename Datei1 ... DateiN ZielOrdner
  1536.  
  1537.     Erm÷glicht es, eine Datei umzubennen oder solche auf dem gleichen
  1538.      GerΣt zu bewegen. Eine oder mehrere Dateien k÷nnen in einen einzelnen
  1539.      Ordner verschoben werden.
  1540.     Das Archivierungs-Bit (a), wird bei diesem Vorgang gel÷scht.
  1541.     Suchmuster sollten aus Sicherheitsgrⁿnden vermieden werden.
  1542.  
  1543.     RESIDENT
  1544.     Gebrauch : resident [-r][-d] [Datei]
  1545.     Beispiel : resident lc1 lc2 blink    # LΣdt diese Dateien resident
  1546.            resident -d lc1 lc2 blink # LΣdt erst resident,wenn n÷tig
  1547.            resident -r lc1 lc2 blink # L÷scht residente Dateien
  1548.            resident                  # Listet residente Dateien
  1549.  
  1550.     Dies ist das ARP Resident Kommando. Kommandos werden von der Shell
  1551.      zuerst dort gesucht, bevor in externen GerΣten gesucht wird.
  1552.     Nur wirkliche Programme k÷nnen resident geladen werden. Bei weiteren
  1553.      Fragen zu resident, ist bitte das ARP Handbuch zu lesen.
  1554.     Option -d ist sehr praktisch: So kann in der Start-Datei
  1555.      folgenden Eintrag gemacht werden:
  1556.       resident -d Datei1 .. DateiN
  1557.      Die Programme werden nicht sofort geladen, sondern nur wenn
  1558.      sie tatsΣchlich gestartet werden. Dies ist ein einfacher Weg,
  1559.      den Speicherverbrauch und die Start-Zeit zu Verkⁿrzen.
  1560.     Die alte Option -a hat keine weitere Bedeutung mehr.
  1561.  
  1562.     RETURN
  1563.     Gebrauch : return [n]
  1564.     Beispiel : return 10
  1565.  
  1566.     Die Shell, oder eine Stapeldatei wird mit dem angegebenen Wert
  1567.      als Fehlerkode verlassen.
  1568.  
  1569.     RM
  1570.     Synonym zu delete
  1571.  
  1572.     RPN
  1573.     Gebrauch : rpn Ausdruck
  1574.     Beispiel : rpn 3 7 *    # Erigibt eine Ausgabe von 21
  1575.  
  1576.     Berechnet einen RPN (revers polish notation, siehe Fachliteratur)
  1577.      Ausdruck, dabei werden 32-Bit Variabeln verwendet.
  1578.      Nach der Berechung, schreibt RPN den Wert auf den Stack.
  1579.      Beispiel: "rpn $x 2 * | input x" Die Variable x hier verdoppelt.
  1580.      Implementierte Funktionen:
  1581.  
  1582.      + - * /    Triviale Ausdrⁿcke; / ist eine integere Division.
  1583.      %        Modulo Operation z.B. "rpn 7 3 %" Ergibt 1
  1584.      & | ~        Bitweise UND, ODER, NOT Operatoren
  1585.      > < ==        Testet auf gr÷sser-als, kleiner-als, gleich. Auch <=
  1586.             und >= sind erlaubt.
  1587.      !        Logische NICHT Operation
  1588.      DUP        Dupliziert Wert auf dem Stacks
  1589.      DROP        L÷scht obersten Wert des Stacks
  1590.      SWAP        Tauscht Wert mit dem obersten auf dem Stack aus.
  1591.  
  1592.     Um keinen Konflikt mit den Ausgabeumlenkungs-Zeichen, > und < zu
  1593.      bekommen, mⁿssen die Operatoren in diesem Fall zwischen
  1594.      Anfⁿhrungszeichen "" stehen.
  1595.       3 2 ">"    # Ergibt 1, dies wird auf die Standardausgabe
  1596.             # gelenkt
  1597.  
  1598.     RUN
  1599.     Gebrauch : run Programm Argumente
  1600.     Beispiel : run emacs test.c
  1601.  
  1602.     Startet das Programm unter einem neuen Process.
  1603.     In der jetzigen Implementation des Kommandos run, kann die
  1604.      Ausgabe und die Eingabe des Programm nicht umgelenkt werden.
  1605.     Das Kommando ist nicht ganz zuverlΣssig: Gebrauch auf eigenes Risiko.
  1606.     $_newproc wird auf den Wert der CLI-Nummer des neuen Processes gesetzt
  1607.     Siehe auch rback
  1608.  
  1609.     RXREC
  1610.     Gebrauch : rxrec [portname]
  1611.  
  1612.     Generiert einen AREXX-Port mit spezifizierten Namen.
  1613.      Vorgabe ist "rexx_csh". Anschliessend geht die Shell in einen
  1614.      Warte-Modus, in der sie auf Kommandos wartet.
  1615.  
  1616.     Achtung, der einzige Weg diesen Status zu verlassen, besteht darin,
  1617.      auf den angegebenen ARexx-Port die Mitteilung 'bye' zu senden.
  1618.  
  1619.     Beispiel:
  1620.     Eine weitere Cshell in einem neuen CLI ÷ffnen.
  1621.     Dort eingeben:
  1622.         rxrec
  1623.  
  1624.     Die Shell gibt nun keine Antwort auf Kommandos, denn diese
  1625.      wartet auf ARexx-Mitteilungen (port "rexx_csh").
  1626.     Auf der anderen Cshell bitte eingeben:
  1627.         rxsend rexx_csh "dir ram:"
  1628.     Es wird auf der neuen CShell der Inhalt des Ordners ram: ausgegeben.
  1629.     Um die neue CShell wieder freizugeben, ist
  1630.         rxsend rexx_csh bye
  1631.      einzugeben.
  1632.     Die neue CShell ist nun wieder im (normalen) Kommando-Modus
  1633.  
  1634.     RXSEND
  1635.     Gebrauch : rxsend [-lr] PortName Kommando1 ...KommandoN
  1636.  
  1637.     Sendet Kommandos zu einem AREXX-Port.
  1638.     Jedes Kommando wird als einzelnes Kommando gesendet!
  1639.  
  1640.     Es werden keine ZusΣtze ben÷tigt, um rxrec zu starten, nur
  1641.      ein Programm mit dem richtigen AREXX-Port.
  1642.  
  1643.     Ein Beispiel ist CygnusEdProfessional: Hier als Beispiel ein Kommando
  1644.      das den CED wiederbelebt (falls im Wartemodus), eine Datei
  1645.      namens test.c lΣdt, und ein Sprung zur Zeile 20 macht:
  1646.  
  1647.         rxsend rexx_ced "cedtofront" "open test.c" "jmp to line 20"
  1648.         # rexx_ced ist der Name des AREXX Port's fⁿr CygnusEd
  1649.  
  1650.     Die Option -r setzt die Variable _result auf den Rⁿckgabe-Wert des
  1651.      ausgefⁿhrten AREXX Kommandos.
  1652.  
  1653.     Die Option -l sendet die ganze Zeile als EIN Kommando
  1654.  
  1655.     Mehr Details sind dem jeweiligen Applikations-Handbuch zu entnehmen.
  1656.  
  1657.     SEARCH
  1658.     Gebrauch : search [-abcefnqrvw] Datei1 ... DateiN Zeichenkette
  1659.  
  1660.     Durchsucht die angegebenen Dateien nach einer Zeichenkette.
  1661.     Nur jeweils eine Zeile, in der die Zeichenkette gefunden worden ist,
  1662.      wird angezeigt.
  1663.  
  1664.     Fals als Dateiname STDIN (Grossbuchstaben) angegeben wird, wird von
  1665.      der Standard-Eingabe gelesen. Somit kann mit Hilfe von PIPE's
  1666.      ein Datenstrom durchsucht werden.
  1667.  
  1668.     Beispiel:
  1669.      strings MeinProgramm | search STDIN .library
  1670.      Zeigt alle Libraries die in "MeinProgramm" verwendet werden.
  1671.  
  1672.     Search ist sehr schnell. Wenn keine der Optionen -w, -e und STDIN
  1673.      angegeben wurden wird die Datei in den Speicher geladen.
  1674.  
  1675.     Optionen:
  1676.      -a (abort, Abbruch) Die Ausgabe wird angehalten, beim ersten Vorkommen
  1677.         des Suchmusters.
  1678.      -b (Binary, binΣr) Zeigt den Byte-Offset der gefundenen Zeichenkette
  1679.         In Kombination mit -n, werden nur Offset's Angezeigt.
  1680.      -c (case, Gr./Kl.) Es wird strikt abhΣngig von Gross/Kleinbuchstaben
  1681.         durchsucht.
  1682.      -e (Exklusiv) Zeigt Zeilen in denen die Zeichenkette NICHT vorkommt
  1683.      -f (files, Dateien) Zeigt nur den Namen der Dateien in dem die
  1684.         Zeichenkette gefunden wurde.
  1685.      -l (left, Links) Das Suchmuster beginnt am Anfang einer Zeile (dies
  1686.         ist schneller als Suchmuster zu nutzen)
  1687.      -n (number, Nummer) Schaltet die Zeilen-Nummerierung ab.
  1688.      -o (only, nur) Sucht nur ganze W÷rter.
  1689.      -q (quiet, still) Unterdrⁿckt das Ausgeben der Dateinamen.
  1690.      -r (Rekursiv) Wenn ein Ordner angegeben wird, werden alle
  1691.         Dateien und Ordner rekursiv durchsucht.
  1692.      -v (verbose, Kommentar) Zeigt jeden Dateinamen auf einer separaten
  1693.         Zeile. Dies wird automatisch eingeschaltet, wenn der search
  1694.         umgeleitet wurde.
  1695.      -w (wild card, Suchmuster) Siehe Unten.
  1696.  
  1697.  
  1698.     Bemerkungen zu Suchmustern:
  1699.     - Benutzt Shell-Standardmuster.
  1700.     - Alle Standard ARP Suchzeichen sind verwendbar: * ? [] () | ~ ' #
  1701.     - Die ganze Zeile muss eine Such-Zeichenkette ergeben.
  1702.     - Die Zeichenkette muss zwischen Anfⁿhrungszeichen stehen! (!!)
  1703.  
  1704.     Beispiel:
  1705.  
  1706.     search -cr df0:include ACCESS
  1707.      Findet alle Vorkommen von ACCESS (gross geschrieben)in allen Dateien
  1708.      im df0:include Ordner.
  1709.  
  1710.     search -w shell.h "'#define*"
  1711.      Zeigt nur Zeilen einer Datei in der der Anfang mit #define
  1712.      beginnt. Das Zeichen ' muss vor # stehen, da # ein Spezial-
  1713.      Zeichen ist.
  1714.  
  1715.     SET
  1716.     Gebrauch : set [VarName] [Zeichenkette]
  1717.     Beispiel : set abc hallo
  1718.  
  1719.     Set ohne Argumente gibt Liste aller aktuellen Variablen und deren
  1720.      Inhalt aus.
  1721.     Set mit einem Argument zeigt den Inhalt der angegebenen Variable.
  1722.     Wird ein Name und eine Zeichenkette angegeben, so wird die
  1723.      Zeichenkette in der spezifizierten Variablen gespeichert.
  1724.  
  1725.     Siehe auch Abschnitt fⁿr spezielle _variablen.
  1726.  
  1727.     SETENV
  1728.     Gebrauch : setenv UmgVar Wert
  1729.  
  1730.     Setzt eine ENV: (Environment, Umgebung) Variable auf angebenen Wert.
  1731.      Der Wert muss in Anfⁿhrungszeichen gesetzt werden, enthΣlt er
  1732.      Leerzeichen.
  1733.  
  1734.     SLEEP
  1735.     Gebrauch : sleep Zeitwert
  1736.     Beispiel : sleep 10
  1737.  
  1738.     Fⁿr 'Zeitwert' - Sekunden warten, oder aber solange bis ^C gedrⁿckt
  1739.      wird.
  1740.  
  1741.     SPLIT
  1742.     Gebrauch : split QuellVar ZielVar1 ... ZielVarN
  1743.  
  1744.     Weist ein Wort in QuellVar jedem ZielVar zu, den Rest von QuellVar
  1745.      an das letzte Zielvar.
  1746.     Achtung, Variablen-NAMEN angeben, nicht Variablen.
  1747.  
  1748.     STACK
  1749.     Gebrauch : stack [Wert]
  1750.     Beispiel : stack 8000
  1751.  
  1752.     ─ndert den Standard Stack fⁿr den benutzten CLI. Ohne Parameter
  1753.      wird die aktuelle Stackgr÷sse ausgegeben.
  1754.     Jedes Programm benutzt eine gewisse Menge des Stacks. Ein Stack
  1755.      ist ein Speicherraum, in dem z.B. Variablen gespeichert werden k÷nnen.
  1756.     Der n÷tige Verbrauch ist der jeweiligen Applikationsbeschreibung
  1757.      zu entnehmen.
  1758.     Ein normaler Stack bewegt sich zwischen 4000 und 25000 Bytes.
  1759.     Die Shell selber braucht ca. 8000 Bytes Stack fⁿr Variablen,
  1760.      diverse Speicheroperationen und PIPES.
  1761.  
  1762.     STRHEAD
  1763.     Gebrauch : strhead VarName MarkierZeichenkette
  1764.     Beispiel : strhead x . blafasel.bas # Setzt x auf "blafasel"
  1765.  
  1766.     L÷scht alles ab dem MarkierZeichen in der 'Zeichenkette' und
  1767.      weist das Ergebnis der Variablen 'VarName' zu.
  1768.  
  1769.     STRINGS
  1770.     Gebrauch : strings Datei1..DateiN MinLΣnge
  1771.     Beispiel : strings c:dir c:list shell 7
  1772.  
  1773.     Gibt alle Zeichenketten die in den angegebenen Dateien (normalerweise
  1774.      binΣr) vorkommen aus, die mindestens die LΣnge MinLΣnge haben.
  1775.  
  1776.     STRLEFT
  1777.     Gebrauch : strleft VarName Zeichenkette n
  1778.     Beispiel : strleft x LangZeichenkette 5 # Setzt x auf "LangZ"
  1779.  
  1780.     Weist die linken n Zeichen einer Zeichenkette der Variablen
  1781.      VarName zu.
  1782.  
  1783.     STRLEN
  1784.     Gebrauch : strlen VarName Zeichenkette
  1785.     Beispiel : strlen x Hallo # setzt x auf "5"
  1786.  
  1787.     Weist die LΣnge einer Zeichenkette einer Variablen VarName zu.
  1788.  
  1789.     STRMID
  1790.     Gebrauch : strmid VarName Zeichenkette n1 [n2]
  1791.     Beispiel : strmid x LangZeichenkette 5 3 # setzt x auf "Zei"
  1792.  
  1793.     Nimmt n2 Zeichen der Zeichenkette, ab der Stelle n1, und weist sie
  1794.      der Variablen VarName zu. Wird n2 weggelassen, wird die ganze
  1795.      Zeichenkette ab n1 zugewiesen.
  1796.  
  1797.     STRRIGHT
  1798.     Gebrauch : strright VarName Zeichenkette n
  1799.     Beispiel : strright x LangZeichenkette 12 # setzt x auf "kette"
  1800.  
  1801.     Weist die rechten n Zeichen einer Zeichenkette einer Variablen zu.
  1802.  
  1803.     STRTAIL
  1804.     Gebrauch : strtail VarName MarkierZeichen Zeichenkette
  1805.     Beispiel : strtail x . blafasel.bas # setzt x auf "bas"
  1806.  
  1807.     L÷scht alles vor und inklusive des MarkierZeichen in der
  1808.      Zeichenkette und weist das Ergenis der Varibalen VarName zu.
  1809.  
  1810.     SOURCE
  1811.     Gebrauch : source Datei [Argumente]
  1812.     Beispiel : source mymake.sh all
  1813.     Ergebnis : Die Stapeldatei 'mymake.sh' wird mit der gesetzten Variable
  1814.      _passed = 'all' aufgerufen.
  1815.  
  1816.     Fⁿhrt Kommandos aus einer Stapeldatei aus. So k÷nnen Kommandos in einer
  1817.      Datei zusammengefasst werden, und diese dann mit dem Kommando 'source'
  1818.      ausgefⁿhrt werden. Ge-Source'te Dateien haben den zusΣtzlichen
  1819.      Vorteil, das diese Schleifen (siehe GOTO und LABEL) benutzen k÷nnen.
  1820.      An die SOURCE Dateien k÷nnen Argumente ⁿbergeben werden, indem nach
  1821.      dem Dateinamen diese spezifiziert werden. Argumente werden ⁿber die
  1822.      _passed Variable weitergegeben (als einzelne Zeichenkette, Menge von
  1823.      W÷rtern).
  1824.  
  1825.     Lange Zeilen k÷nnen mit einem Backslash (\) am Ende der Zeile in
  1826.      mehrere Zeilen aufgeteilt werden. Eine einzelne Zeile muss kⁿrzer
  1827.      sein als 512 Zeichen, aber die geteilten Zeilen k÷nnen insgesamt
  1828.      lΣnger sein. Es gibt kein Limit fⁿr die LΣnge der zusammengesetzten
  1829.      Zeile.
  1830.  
  1831.     Automatisches 'sourcen' wird ausgefⁿhrt durch ein AnhΣngen eines
  1832.      .sh Suffix an die Stapeldatei (nicht notwendig das s-Bit zu setzen),
  1833.      und normales Aufrufen, so wie es mit einem echten Programm
  1834.      geschehen wⁿrde:
  1835.  
  1836.     --------- Datei hallo.sh ---------
  1837.     foreach i ( $_passed ) "echo "Hi $i"
  1838.     ---------------------------------
  1839.  
  1840.     $ hallo Emil Anton Bert
  1841.     hallo Emil
  1842.     hallo Anton
  1843.     hallo Bert
  1844.  
  1845.     Ist das letzte Zeichen einer Zeile in einer Stapeldatei ein '{',
  1846.      dann werden alle folgenden Zeilen an die aktuelle Zeile angehΣngt
  1847.      und durch Semikola gtrennt, solange bis das letzte Zeichen einer
  1848.      Zeile ein '}' ist. Solche Bl÷cke k÷nnen verschachtelt sein.
  1849.  
  1850.     --------- Datei lang.sh ---------
  1851.     alias komplex {
  1852.      echo -n "dieses alias "
  1853.      echo "funktioniert!"
  1854.     }
  1855.     ---------------------------------
  1856.  
  1857.     $ lang
  1858.     $ komplex
  1859.     dieses alias funktioniert!
  1860.  
  1861.     TACKON
  1862.     Gebrauch : tackon VarName Pfadname Dateiname
  1863.     Beispiel : tackon x df0:c Dir # setzt x auf "df0:c/Dir"
  1864.     oder     : tackon x df0: Preferences # setzt x auf "df0:Preferences"
  1865.  
  1866.     HΣngt korrekte Dateinamen an einen Pfadnamen und weist das Ergebnis
  1867.      der spezifizierten Variablen zu.
  1868.  
  1869.     TAIL
  1870.     Gebrauch : tail Dateiname [Anzahl]
  1871.     Beispiel : tail readme 20
  1872.  
  1873.     Zeigt die letzten "Anzahl" Zeilen der Datei "Dateiname" an. Wird
  1874.      Anzahl nicht angegeben, so wird 10 angenommen.
  1875.  
  1876.     TEE
  1877.     Gebrauch : tee [Datei]
  1878.     Beispiel : cc test.c | tee >error.list
  1879.             # Compiliert test.c und kopiert Fehlermeldungen
  1880.             # automatisch nach error.list
  1881.  
  1882.     Kopiert die Standardeingabe (stdin) auf die Standardausgabe
  1883.      (stdout) und die angegebene Datei. Wird die Datei nicht angegeben,
  1884.      so wird die Standardfehlerausgabe (stderr) benutzt.
  1885.  
  1886.     TOUCH
  1887.     Gebrauch : touch Datei1 [.. DateiN]
  1888.  
  1889.     Setzt den Datumsstempel der Datei auf aktuelle Zeit und Datum und
  1890.      l÷scht das Archive-Bit.
  1891.  
  1892.     TRUNCATE
  1893.     Gebrauch : truncate [n]
  1894.     Beispiel : alias | sort | truncate
  1895.  
  1896.     Ein Filter welches die Breite der Standardeingabe (stdin) auf die
  1897.      angegebene Breite festlegt, versucht ebenso tab und Escape-sequenzen
  1898.      durchzulassen. Wird die Breite nicht angegeben, so wird die aktuelle
  1899.      Fensterbreite benutzt.
  1900.  
  1901.     TYPE
  1902.     Synonym zu CAT.
  1903.  
  1904.     UNALIAS
  1905.     Gebrauch : unalias Name1 [.. NameN]
  1906.     Beispiel : unalias vt
  1907.  
  1908.     L÷scht Aliase.
  1909.  
  1910.     UNIQ
  1911.     Gebrauch : uniq
  1912.  
  1913.     Dieses Filter l÷scht alle fortlaufenden, mehrfach vorkommende Zeilen
  1914.      in einer Datei, bzw der Standardeingabe. Ist besonders sinnvoll
  1915.      fⁿr sortierte Dateien.
  1916.  
  1917.     UNLOCAL
  1918.     Gebrauch : unlocal Var1 [... VarN]
  1919.  
  1920.     L÷scht eine oder mehrere lokale Variablen.
  1921.  
  1922.     UNSET
  1923.     Gebrauch : unset Name1 [.. NameN]
  1924.     Beispiel : unset abc
  1925.  
  1926.     Setzt Variablen zurⁿck. L÷scht sie komplett.
  1927.  
  1928.     USAGE
  1929.     Gebrauch : usage [Kommando1 [.. KommandoN] ]
  1930.  
  1931.     Wenn ohne Argumente aufgerufen, wird eine kurze Information ⁿber
  1932.      spezielle, benutzte Kommando ausgegeben. Ansonsten wird die
  1933.      Gebrauchsanleitung der befragten Kommandos ausgegeben. Wird ein
  1934.      Kommando mit '?' als Parameter aufgerufen, so wird die
  1935.      Gebrauchsanleitung ebenfalls ausgegeben.
  1936.  
  1937.     VERSION
  1938.     Gebrauch : version
  1939.  
  1940.     Zeigt aktuelle Version der Shell, und die Autoren werden gelistet.
  1941.  
  1942.     WAITFORPORT
  1943.     Gebrauch : waitforport Portname [Sekunden]
  1944.  
  1945.     Wartet auf Eingabe des Port 'Portname'. Wartezeit ist standarmΣssig
  1946.      auf 10 Sekunden begrenzt.
  1947.  
  1948.     WHEREIS
  1949.     Gebrauch : whereis [-r] Dateiname [GerΣt1 .. GerΣtN]
  1950.     Beispiel : whereis -r List df0: dh0:
  1951.  
  1952.     Wird nur der Dateiname angegeben, so durchsucht Whereis alle
  1953.      Ordner im aktuellen Ordner nach diesem Datei. Ein Asterisk '*' wird
  1954.      an den Dateinamen angehΣngt. Suchmuster sind erlaubt (dann wird
  1955.      kein Asterisk mehr angehΣngt) fⁿr Dateinamen, nicht fⁿr
  1956.      Pfadnamen. Werden zusΣtzliche Argumente ⁿbergeben, sucht Whereis
  1957.      nur in diesen Pfaden, nicht im aktuellen Ordner.
  1958.     Whereis -r durchsucht alle vorhandenen GerΣte.
  1959.  
  1960.     WINDOW
  1961.     Gebrauch : window [-q][-f][-b][-l][-s] [Dimensionen]
  1962.     Optionen :
  1963.      -f (front, vorne) Window nach vorne holen
  1964.      -b (back, hinten) Window nach hinten schieben
  1965.      -l (large, gross) Window auf Maximum vergr÷ssern
  1966.      -s (small, klein) Window auf Minimum verkleinern
  1967.      -a (activate, aktiviere) Window aktivieren
  1968.      -q (query, abfrage) Zeigt alle ge÷ffneten Windows und Screens
  1969.  
  1970.     Viele Operationen fⁿr das CLI Window (Fenster). Werden Dimensionen
  1971.      angegeben, so mⁿssen sie in der Form x y Breite H÷he spezifiziert
  1972.      werden (zwischen den Werten ein Leerzeichen).
  1973.     Das Kommando "window -l" kann sinnvoll sein fⁿr PAL Maschinen, um ein
  1974.      volles, auf PAL angepasstes Window zu erhalten, aus der login
  1975.      Sequenz heraus z.B., oder aber wenn eine Overscan Workbench
  1976.      genutzt wird.
  1977.     Die Option "-q" zeigt die Window/Screen Dimensionen eines jeden
  1978.      ge÷ffneten Window und Screens an.
  1979.  
  1980.     WRITEFILE
  1981.     Gebrauch : writefile VarName
  1982.  
  1983.     Schreibt ein Menge von W÷rtern auf die Standardausgabe, ein
  1984.      Wort pro Zeile. Achtung, der Name der Variablen (VarName)
  1985.      soll ⁿbergeben werden, nicht der Inhalt ($VarName).
  1986.  
  1987.  
  1988. IX. SPEZIAL VARIABLEN
  1989. -------------------------
  1990.  
  1991.     _abbrev
  1992.     Auf 'n' gesetzt, k÷nnen interne Befehle nicht mehr abgekⁿrzt werden.
  1993.  
  1994.     _bground
  1995.     Ist wahr, wenn die Shell mit einer nicht-interaktiven Eingabe
  1996.      gestartet wurde.
  1997.  
  1998.     _clinumber
  1999.     EnthΣlt die aktuelle CLI Prozessnummer (1-20).
  2000.  
  2001.     _cwd
  2002.     EnthΣlt die Zeichenkette, welche den aktuellen Ordner angibt, von
  2003.      der Wurzel (:) ausgehend. Die SHELL kann mit ihrem aktuellen Ordner
  2004.      durcheinanderkommen, wird durch ein externes Programm der Ordner
  2005.      verΣndert. Dazu PWD benutzen, um die _cwd Variable in solchen FΣllen
  2006.      neu zu setzen.
  2007.  
  2008.     _debug
  2009.     Debug Modus. Muss auf einen Wert gesetzt sein.
  2010.  
  2011.     _every
  2012.     EnthΣlt den Namen eines Befehls, der ausgefⁿhrt wird, bevor
  2013.      das Prompt ausgegeben wird. Bitte nicht benutzen um das Prompt
  2014.      selber auszugeben.
  2015.  
  2016.     _except
  2017.       Siehe EXCEPTION.
  2018.  
  2019.     _hilite
  2020.     EnthΣlt die Zeichensatzattribute die benutzt werden, um Schrift
  2021.      hervorzuheben. Ein Zeichen fⁿr ein Attribut:
  2022.      b fⁿr Bold
  2023.      i fⁿr Italic
  2024.      u fⁿr Unterstrich
  2025.      r fⁿr Negativ
  2026.      c3 fⁿr Vordergrundfarbe 3
  2027.      c3,2 fⁿr Vordergrundfarbe 3 und Hintergrundfarbe 2
  2028.     Jede Kombination erlaubt. Die _hilite Standardvorgaben sind "c7",
  2029.      im Terminalmodus "r".
  2030.  
  2031.     _history
  2032.     Diese Variable enthΣlt einen numerischen Wert, und gibt an wie weit
  2033.      im Kommandospeicher zurⁿckgesehen werden soll. Auf 0 zu setzen, soll
  2034.      der Kommandospeicher abgeschaltet werden, um z.B. festzustellen
  2035.      ob Ihr Programm Speicher nicht freigibt. Ist standardmΣssig auf 50
  2036.      gesetzt.
  2037.  
  2038.     _insert
  2039.     Setzt den Standardwert fⁿr den Einfⁿge/▄berschreib Modus fⁿr
  2040.      den Kommandozeileneditor. ESI-i schaltet zwischen beiden Modi, aber
  2041.      nach einem <RETURN> wird wieder auf einen hier angegebenen Standard-
  2042.      wert zurⁿckgesetzt. StandardmΣssig ist _insert auf 1 gesetzt,
  2043.      wird _insert gel÷scht, so wird der ▄berschreibmodus Standardwert.
  2044.  
  2045.     _ioerr
  2046.     EnthΣlt den zweiten Fehler Kode des letzten Befehls. Wird nach jedem
  2047.      externen Kommando geΣndert, ebenso nach einem fehlerhaft ausgefⁿhrten
  2048.      internen Kommando. Siehe auch @ioerr().
  2049.  
  2050.     _kick2x
  2051.     Ist wahr, wenn dos.library V36 ge÷ffnet werden konnte, was bedeutet,
  2052.      das Kickstart release 2 existiert.
  2053.  
  2054.     _lasterr
  2055.     Rⁿckgabewert des zuletzt ausgefⁿhrten Befehls. Dies beinhΣlt
  2056.      interne Befehle und externe Befehle, um also diese Variable zu nutzen,
  2057.      muss sie DIREKT nach Aufruf des zu befragenden Befehls
  2058.      abgefragt werden.
  2059.  
  2060.     _lcd
  2061.     EnthΣlt den Namen des zuletzt benutzten Ordners. Das eingebaute Alias
  2062.      'dswap' wechselt in diesen Ordner. Erneut aufgerufen ist wieder
  2063.      der Ordner aktuell, der am Anfang aktiv war.
  2064.  
  2065.     _man
  2066.     EnthΣlt den Pfad und den Namen ihrer .doc Dateien. Standardwert
  2067.      ist 'Csh:Csh.doc'.
  2068.  
  2069.     _maxerr
  2070.       EnthΣlt den bislang schlechtesten (h÷chsten) Rⁿckgabewert. Um dies
  2071.      nutzen zu k÷nnen, den Wert normalerweise auf '0' setzen, dann
  2072.      ein paar Befehle ausfⁿhren, und erneut hier nachsehen.
  2073.  
  2074.     _minrows
  2075.     EnthΣlt die minimale Anzahl Zeilen, die ein Window haben muss,
  2076.      damit das 'quick scrolling' eingeschaltet wird.
  2077.  
  2078.     _nobreak
  2079.     Schaltet CTRL-C ab wenn auf '1' gesetzt.
  2080.  
  2081.     _passed
  2082.     Diese Variable enthΣlt die Argumente, die einem BatchDatei ⁿberge-
  2083.      ben werden, wenn es mit 'source' gestartet wird. Beispiel:
  2084.  
  2085.     test a b c d
  2086.  
  2087.     -------- Datei test.sh ----------
  2088.     echo $_passed
  2089.     foreach i ( $_passed ) "echo YO $i"
  2090.     --------------------------------
  2091.  
  2092.     _path
  2093.     Gibt die Ordner an, in denen Csh nach ausfⁿhrbaren Programmen
  2094.      suchen soll. Der aktuelle Ordner und der AmigaDOS Pfad werden
  2095.      zuerst durchsucht. Dieser Pfad wird zuerst nach dem Kommando,
  2096.      dann nach Kommando.sh (Stapeldatei) durchsucht.
  2097.  
  2098.     Beispiel: set _path ram:c,ram:,sys:system,dh1:tools,df0:c
  2099.  
  2100.     _prompt
  2101.     Diese Variable enthΣlt die Zeichen, die als Eingabeaufforderung
  2102.      ausgegeben werden. Diese kann folgende Kontrollzeichen enthalten:
  2103.      %c (color, Farbe) macht das Prompt farbig. Siehe _hilite
  2104.      %m (memory, Sepicher) gibt freien Speicher in Kb an
  2105.      %d (date, Datum) aktuelles Datum
  2106.      %t (time, Zeit) aktuelle Zeit
  2107.      %p (path, Pfad) aktueller Pfad
  2108.      %n (number, Nummer) eigene CLI-Nummer
  2109.      %v (version, Version) benutzte Csh-Version
  2110.      %h (history, K-Speicher) momentane Kommandospeicher-Nummer
  2111.      %f (free, Frei) freier Platz auf dem aktuellen Drive
  2112.      %r (pRiority, PrioritΣt) eigene Task-PrioritΣt
  2113.      %s (shells, Shell) Anzahl der offenen Csh's
  2114.     Voreingestellt ist "%c%p> "
  2115.     Wenn vergessen wurde, ein 'if' Kommando mit 'endif' abzuschliessen,
  2116.      wird das Prompt zu '_ '
  2117.  
  2118.     _pipe
  2119.     Der Ordner fⁿr TemporΣrdateien. Voreingestellt: 'T:'
  2120.  
  2121.     _qcd
  2122.     EnthΣlt den Namen der Datei, die alle Ordner aller vorhandenen
  2123.      GerΣte enthΣlt. Falls nicht gesetzt, wird das 'quick-cd'
  2124.      abgeschaltet.
  2125.  
  2126.     _rback
  2127.     Der Name des Kommandos, das vor die Kommandozeile gehΣngt wird,
  2128.      falls der User ein '&' angehΣngt hat. Normalerweise 'rback'.
  2129.  
  2130.     _rxpath
  2131.     Wie _path, aber hier sucht Csh nach .rexx Dateien. Normalerweise
  2132.      'REXX:'
  2133.  
  2134.     _scroll
  2135.     Anzahl der Zeilen, die das Window auf einmal scrollen soll, falls
  2136.      $_minrows ⁿberschritten ist.
  2137.  
  2138.     _terminal
  2139.     Sagt aus, ob die Csh im Terminal-Modus lΣuft
  2140.  
  2141.     _titlebar
  2142.     Erscheint in der Titelzeile des Windows. Die gleichen Kontroll-
  2143.      zeichen wie fⁿr _prompt k÷nnen verwendet werden.
  2144.  
  2145.     _version
  2146.     EnthΣlt die aktuelle Versionsnummer von Csh, z.B. 517
  2147.  
  2148. X. FUNKTIONEN
  2149. ---------------
  2150.  
  2151.  FUNKTIONEN
  2152.     Funktionen mⁿssen mit einem @-Zeichen anfangen und k÷nnen nicht
  2153.      abgekⁿrzt werden. Vor ihnen muss ein Leerzeichen stehen, genauso
  2154.      hinter der ÷ffnenden und vor der schliessenden Klammer.
  2155.  
  2156.     Funktionen dⁿrden verschachtelt werden. Gross/Kleinschreibung ist
  2157.      wichtig bei Funktionsnamen, jedoch nicht bei den Operationen.
  2158.  
  2159.     Funktionen k÷nnen als Kommandos verwendet werden. In diesem Fall
  2160.      werden sie ohne @ geschrieben. Ihren Rⁿckgabewert geben sie dann
  2161.      auf den Bildschirm aus. Diese k÷nnen nicht abgekⁿrzt werden, und
  2162.      ein Kommando gleichen Namens hat Vorrang.
  2163.         drives        -> DF0: DH1: DH2: RAM: WB_2.x:
  2164.  
  2165.     Bis jetzt k÷nnen Funktionen nicht selber definiert werden.
  2166.  
  2167.     Achtung, Wortmengen und Zeichenketten sind nicht identisch.
  2168.      Nach
  2169.        set var hallo da
  2170.       ist 'var' eine Menge von Worten, aber nach
  2171.        set var "hallo da"
  2172.       ist 'var' eine einzige Zeichenkette (ein einziges Wort). Wenn die
  2173.       Variablen mit 'echo' ausgegeben werden, schauen sie gleich aus, aber
  2174.       z.B. in 'foreach' verhalten sie sich verschieden. @split und
  2175.       @concat wandeln die beiden Formen.
  2176.  
  2177.     @abbrev( Zei1 Zei2 [len] )
  2178.     wahr wenn die ersten <len> Zeichen von Zei1 eine Abkⁿrzung von
  2179.      Zei2 sind. (Abkⁿrzung von Kommandos, Funktionen)
  2180.     @abs( Num )
  2181.     gibt den Absolutwert von <Num> zurⁿck
  2182.     @age( Datei )
  2183.     das Alter der Datei in Tagen, 99999 falls nicht gefunden
  2184.     @appsuff( Name suffix )
  2185.     hΣngt, wenn n÷tig, die Endung <suffix> an den Namen an
  2186.     @arg( arg ... arg )
  2187.     wie @pickargs( )
  2188.     @availmem( [Typ] )
  2189.     liefert den freien 'chip', 'fast' oder Gesamtspeicher.
  2190.     @basename( Pfad ... Pfad )
  2191.     Gibt die reinen Dateinamen ohne Pfade zurⁿck.
  2192.     @center( Wort LΣnge )
  2193.     gibt eine Zeichenkette der LΣnge <LΣnge> mit <Wort> darin zentriert
  2194.     @checkport( Portname )
  2195.     sagt aus ob ein bestimmt Port existiert
  2196.     @clinum( ProcName )
  2197.     gibt die CLI-Nummer des Prozesses <ProcName> zurⁿck.
  2198.     @complete( Abkⁿrzung Wort ... Wort )
  2199.     gibt das erste Wort zurⁿck, von dem <Abkⁿrzung> eine Abk. ist
  2200.     @concat( Wort1 ... WortN )
  2201.     hΣngt alle Worte zu einer Zeichenkette zusammen, getrennt durch
  2202.         Leerzeichen. Siehe @split
  2203.     @confirm( Titel Punkt1 .. PunktN)
  2204.       fragt nach BestΣtigung fⁿr jedes Wort <Punkt>, und gibt nur
  2205.     die BestΣtigten zurⁿck.
  2206.     @console( STDIN | STDOUT )
  2207.     sagt ob Standard-Eingabe (stdin) oder die Standard-Ausgabe
  2208.      (stdout) interaktiv (nicht umgeleitet) ist.
  2209.     @dectohex( Zahl )
  2210.     wandelt eine Zahl von Dezimal nach Hex (sedesimal)
  2211.     @delword( Wort1 ... WortN-1 WortN )
  2212.     gibt alle Worte ausser dem N-ten zurⁿck
  2213.     @delwords( Wort1 ... WortN i j )
  2214.     l÷scht j Worte vom i-ten an
  2215.     @dirs( Name1 .. NameN )
  2216.     gibt nur die Ordner unter den Namen zurⁿck
  2217.     @drive( Pfad )
  2218.     gibt den GerΣte-Namen zurⁿck, der zu 'Pfad' geh÷rt
  2219.     @drives( )
  2220.     gibt alle Partitionen und Diskdrives zurⁿck
  2221.     @exists( Datei )
  2222.     sagt aus ob eine Datei existiert
  2223.     @fileblks( Datei1 ... DateiN )
  2224.     sagt aus wieviele Bl÷cke fⁿr diese Dateien ben÷tigt werden.
  2225.     @filelen( Datei1 ... DateiN )
  2226.     sagt aus wieviele Bytes fⁿr diese Dateien ben÷tigt werden.
  2227.     @fileprot( Datei )
  2228.     gibt eine Zeichenkette der Sicherheits-Bits der Datei zurⁿck.
  2229.     @filereq( Titel Pfad&Muster Dateiname )
  2230.     ÷ffnet einen ARP Dateirequester und gibt den gewΣhlten Namen zurⁿck
  2231.     @files( Datei1 ... DateiN )
  2232.     gibt nur die Dateien zurⁿck, keine Ordner. Siehe @dirs
  2233.     @freebytes( Pfad )
  2234.     die Anzahl der freien Bytes auf dem ensprechenden Pfad
  2235.     @freeblks( Pfad )
  2236.     die Anzahl der freien Bl÷cke auf dem ensprechenden Pfad
  2237.     @freestore( Pfad )
  2238.     der freie Speicher auf dem Pfad, gegeben in Kb und Mb
  2239.     @getenv( VarName )
  2240.     gibt den Wert der ensprechenden ENV: Variablen zurⁿck
  2241.     @getclass( Datei )
  2242.     gibt die Klasse (Typ) der Datei zurⁿck. Siehe Kapitel XIV
  2243.     @howmany( )
  2244.     zeigt die Zahl der laufenden CShells.
  2245.     @index( Zeichenkette Muster )
  2246.     sucht <Muster> in <Zeichenkette> und gibt Offset zurⁿck,
  2247.      0=nicht gefunden
  2248.     @info( Pfad )
  2249.     gibt die entsprechende Zeile aus 'info' zurⁿck
  2250.     @intersect( Wort1 ... WortN , WortN+1 ... WortM )
  2251.     zeigt jene Worte, die in beiden Listen sind. Siehe @union, @member
  2252.     @ioerr( num )
  2253.     Gibt die Fehler-Zeichenkette aus, der zur Fehlernummer <num> geh÷rt
  2254.     @lookfor( Datei Pfad)
  2255.     sucht nach einer Datei im akt. Ordner und in <Pfad>. Siehe $_path
  2256.     @lower( Arg1 ... ArgN )
  2257.     macht seine Argumente kleingeschrieben. Siehe @upper
  2258.     @match( Wort1 ... WortN "Muster" )
  2259.     gibt jene Worte zurⁿck, auf die das Suchmuster passt.
  2260.     @max( Wert1 ... WertN )
  2261.     bestimmt das Maximum der angegebenen Zahlen
  2262.     @megs( Wert )
  2263.     gibt eine Zahl in Kb, Mb oder Gb zurⁿck (gerundet)
  2264.     @member( Wort Wort1 ...WortN )
  2265.     sagt aus ob <Wort> unter den anderen ist. Siehe @union, @intersect
  2266.     @min( Wert1 ... WertN )
  2267.     bestimmt das Minimum der gegebenen Zahlen
  2268.     @mounted( GerΣt )
  2269.     sagt aus ob <GerΣt> (z.B. RAD:) vorhanden
  2270.     @nameext( Dateiname )
  2271.     gibt die Extension (Suffix) des Dateinamens an
  2272.     @nameroot( Dateiname )
  2273.     gibt alles ausser der Extension des Dateinamens
  2274.     @opt( Arg1 ... ArgN )
  2275.     siehe @pickopts( )
  2276.     @pathname( Datei )
  2277.     gibt den Pfad zu einer Datei zurⁿck.
  2278.     @pickargs( Arg1 ... ArgN )
  2279.     wΣhlt aus seinen Argumenten die, welche nicht mit '-' beginnen
  2280.     @pickopts( Arg1 ... ArgN )
  2281.     wΣhlt aus seinen Argumenten die, welche mit mit '-' beginnen
  2282.     @rpn( Ausdruck )
  2283.     berechnet den rpn Ausdruck. Siehe Kommando 'rpn'
  2284.     @sortargs( Arg1 ... AgrN )
  2285.     sortiert seine Argumente alphabetisch
  2286.     @sortnum( Wert1 ... WertN )
  2287.     sortiert seine Argumente numerisch
  2288.     @split( Zeichenkette )
  2289.     macht aus einer Zeichenkette mehrere Worte. Siehe @concat
  2290.     @strcmp( Zeichenkette1 Zeichenkette2 )
  2291.     gibt -1, 0 oder 1 abhΣngig vom alphabetischen Vergleich
  2292.     @strhead( Markierungszeichen Zeichenkette )
  2293.     siehe strhead Kommando
  2294.     @strleft( Zeichenkette Wert )
  2295.     siehe strleft Kommando
  2296.     @strmid( Zeichenkette Wert1 Wert2 )
  2297.     siehe strmid Kommando
  2298.     @strright( Zeichenkette Wert )
  2299.     siehe strright Kommando
  2300.     @strtail( Markierungszeichen Zeichenkette )
  2301.     siehe strtail Kommando
  2302.     @subwords( Wort1 ... WortN i j )
  2303.     gibt die nΣchten j Worte von i an zurⁿck
  2304.     @tackon( Pfad Datei )
  2305.     siehe tackon Kommando
  2306.     @trim( Wort1 ... WortN )
  2307.     entfernt Leerzeichen vorn und hinten an den Worten
  2308.     @unique( Wort1 ... WortN )
  2309.     sortiert die Argumente und macht jedes einmalig
  2310.     @union( Name1 ... NameN , NameN+1 ... NameM )
  2311.     gibt die Worte zurⁿck, ein in einer der beiden Listen sind
  2312.     @upper( Wort1 ... WortN )
  2313.     macht aus den Worten Grossschrift. Siehe @lower
  2314.     @volume( Pfad )
  2315.     gibt den GerΣte-Namen fⁿr den gegebenen Pfad an
  2316.     @winheight( )
  2317.     gibt die H÷he des Windows in Punkten an
  2318.     @winleft( )
  2319.     gibt die linke Ecke des Windows zurⁿck
  2320.     @wintop( )
  2321.     gibt die obere Ecke des Windows zurⁿck
  2322.     @winwidth( )
  2323.     gibt die Breite des Windows zurⁿck
  2324.     @without( Name1 ... NameN , NameN+1 ... NameM )
  2325.     gibt die Worte aus Liste 1 zurⁿck, die nicht in Liste 2 sind
  2326.     @word( Name1 ... NameN i )
  2327.     nimmt das i-te Wort aus der Liste
  2328.     @words( Name1 ... NameN )
  2329.     gibt die Anzahl der Worte in der Liste
  2330.  
  2331.  
  2332. XI. VERSCHIEDENES
  2333. -----------------
  2334.     Csh erlaubt nun schnelles 'Scrolling' in grossen Windows. Dies
  2335.      heisst dass wenn immer der Cursor die unterste Zeile des Windows
  2336.      erreicht, der Text um mehrere Zeilen auf einmal nach oben
  2337.      springt. Allerdings funktioniert das nur mit den folgenden
  2338.      Kommandos:
  2339.       dir, cat, htype, files, search, truncate, tee
  2340.     Die Anzahl der zu scrollenden Zeilen steht in _scroll. Ein
  2341.      Wert <=1 schaltet das schnelle Scrolling' ab.
  2342.     Die Anzahl der Zeilen, die ein Window mindestens haben muss, damit
  2343.      sich das schnelle Scrolling einschaltet, steht in $_minrows
  2344.      (normalerweise 34).
  2345.     Beliebige Kommandos nach 'cat' umgeleitet, befΣhigen auch diese
  2346.      zum Schnellen Scroll, z.B.:
  2347.       list | cat
  2348.  
  2349.     Csh kann beendet werden durch den Close-Button in den Windows
  2350.      von AmigaDOS 2.0 Shells. Es wird dann das Kommando 'quit' aus-
  2351.      gefⁿhrt. Durch das Kommando
  2352.       alias quit "Endcli;quit
  2353.      wird das Window sofort geschlossen wenn der Close-Button ange-
  2354.      klickt wird.
  2355.  
  2356.  
  2357.     EXCEPTIONS
  2358.     (Fehlerbehandlung)
  2359.     Falls ein Fehler passiert und keine Variable _except existiert, wird
  2360.      die aktuelle Zeile abgebrochen. Falls _except exisitiert, hat es
  2361.      die Form:
  2362.       "nnn;commands..."
  2363.      Wobei <nnn> der kleinste Wert ist, der einen Fehler verursachen soll.
  2364.     Wann immer ein Kommando einen Return-kode zurⁿckgibt, der gr÷sser
  2365.      oder gleich <nnn> ist, werden die Kommandos in _except ausgefⁿhrt.
  2366.     WENN _except EXISTIERT WIRD DIE KOMMANDOZEILE NICHT ABGEBROCHEN!
  2367.     Wenn abgebrochen werden soll, sollte das letzte Kommando in _except
  2368.      'abortline' sein.
  2369.  
  2370.     Exception handling ist wΣhrend des exception handlings selber
  2371.      ausgeschaltet.
  2372.  
  2373.     Beispiele:
  2374.  
  2375.     set _except "20;abortline"
  2376.     set _except ";" # alle Fehler werden ignoriert
  2377.  
  2378. XII. Beispiele fⁿr 'SOURCE Dateien'
  2379. -----------------------------------
  2380.  
  2381. Wird in einem CLI-Fenster das Kommando 'Csh <Dateiname>'
  2382.  eingegeben oder dies im Startup-Script stehen hat, so wird die Datei
  2383.  'gesourced'.Dies entspricht in einem CLI-Fenster der Eingabe von
  2384.  'Csh' und dem Eingeben von 'source <Dateiname>' innerhalb der Shell.
  2385.  
  2386. Beispiel:
  2387.  
  2388. ### compat.sh ###
  2389.  
  2390. # Diese Alias-Liste stellt sicher, da▀ aus alten Csh-Versionen
  2391. # gewohnte Abkⁿrzungen nicht neue Befehle aufrufen.
  2392.  
  2393. alias as aset
  2394. alias cl close
  2395. alias g goto
  2396. alias h help
  2397. alias he help
  2398. alias m md
  2399. alias q quit
  2400. alias re rename
  2401. alias w window
  2402.  
  2403. alias kr "rm -r ram:* >NIL:
  2404.  
  2405. ### Ende von compat.sh ###
  2406.  
  2407.  
  2408. Wenn eine Datei S:.login existiert, so wird diese beim Start jeder Shell
  2409. 'gesourced'. Dies ist nⁿtzlich fⁿr alias-Kommandos und sonstige
  2410. Einstellungen, die fⁿr alle Shells gelten sollen.
  2411.  
  2412.  
  2413. ### Beispiel S:.login ###
  2414.  
  2415. # Hier ein Beispiel fⁿr eine .login-Datei:
  2416. # (Diese Datei wird fⁿr jede neue Shell 'gesourced'.)
  2417.  
  2418. set F5 "cdir WORK:"^M
  2419. set f9 "ed s:login.sh"^M
  2420. set F9 "ed df0:s/startup-sequence"^M
  2421.  
  2422. alias toram "%q foreach i ( $q ) \"cp -r $i: ram:$i >NIL:;assign $i: ram:$i
  2423. alias ramop "md RAM:op; assign OP: ram:op
  2424. alias noop "assign OP: ; rm -r ram:op
  2425. alias newop "rm -r OP:*
  2426. alias dc "dfc df0: to df1:
  2427. alias go "%q assign WORK: Boot:$q; cd WORK:; source startme.sh
  2428. alias get "%q cp $q RAM: >NIL:
  2429. alias filter "%a%b%c exec $b \\<$a \\>$c
  2430. # Startet Kommando $b mit Datei $a als Eingabe und schreibt Resultat in
  2431. # Datei $c, Datenflu▀: $a -> ($b) -> $c
  2432.  
  2433. alias rm "%q \\rm @confirm( Remove $q )
  2434.  
  2435. # alias rm "%a set f @pickargs( $a );set opts @pickargs( $a );\
  2436. # e -n \'j\' um @words( @files( $f ) ) Datei und @words( @dirs( $f ) )\
  2437. # Ordner zu l÷schen\"? [n] \";input b;if $b = j;\\rm $opts $f;endif
  2438. # # Fⁿr die ─ngstlichen/Vorsichtigen unter uns: Dateien l÷schen mit Abfrage
  2439. # # Achtung: das '\' mu▀ das letzte Zeichen der Zeile sein !!
  2440.  
  2441. set _prompt "%c%p> "
  2442. # Dieses Kommando fⁿgt den aktuellen Pfad hervorgehoben in den Prompt ein
  2443.  
  2444. # Dieses Kommando sorgt fⁿr die Anzeige von CLI-Nummer, freiem Speicherplatz,
  2445. # Datum und Zeit im Fenster-Titel
  2446. set _titlebar "Shell %n Mem %m Date %d Time %t
  2447.  
  2448. ### Ende Beispiel .login ###
  2449.  
  2450. ****************************************************************************
  2451.  
  2452. Als CLI-Benutzer k÷nnte die 'startup-sequence' einfach folgenderma▀en
  2453.  aussehen:
  2454.  
  2455.     C:Csh S:startup.sh
  2456.  
  2457. Hier ein Beispiel fⁿr S:startup.sh:
  2458.  
  2459. ### Beispiel S:startup.sh ###
  2460.  
  2461. wind -l    # Volle Bildschirmgr÷▀e eines PAL-Rechners nutzen
  2462.     # Bemerkung: Kommandos k÷nnen abgekⁿrzt werden
  2463.     # Hier: 'wind' fⁿr 'window'
  2464.  
  2465. assign LC: Stuff:c INCLUDE: Stuff:include LIB: Boot:lib QUAD: RAM:
  2466.  
  2467. rback C:FaccII; sleep 1
  2468.     # Nach dem Starten eines Prozesses im Hintergrund ist es gut,
  2469.     # dem Rechner Zeit fⁿr das Laden des Kommandos zu geben, um
  2470.     # Nerven und Laufwerk zu schonen.
  2471.  
  2472. resident -d blink lc1 lc2 >NIL:    # verz÷gertes Laden von externen Kommandos
  2473.  
  2474. C:PopCli 300 C:Newcli         # Angabe des vollstΣndigen Pfadnamens
  2475. C:FF -1 Siesta.font >NIL:    # beschleunigt die Ausfⁿhrung
  2476. C:Patch_1 >NIL:
  2477. stack 8000            # Minimum fⁿr lc1 und lc1
  2478.  
  2479. source S:setdate.sh        # dort geht's weiter
  2480.  
  2481. ### Ende Beispiel startup.sh ###
  2482.  
  2483. ****************************************************************************
  2484.  
  2485. Nun folgt eine Beispiel 'source'-Datei, um das Datum und die Zeit zu setzen.
  2486.  Kann verwendet werden, wenn der Rechner keine interne Uhr besitzt.
  2487.  (z.B. A1000, A500)
  2488.  
  2489. ### setdate.sh ###
  2490.  
  2491. open CON:200/100/440/80/SetDate write 1
  2492. echo >.1 -n "Das aktuelle Datum ist "
  2493. date >.1
  2494. echo >.1 -n "Bitte neues Datum eingeben: "
  2495. input <.1 d
  2496. close 1
  2497. strlen len $d
  2498. if $len > 1 ; date $d ; endif
  2499. echo -n "Das neue Datum ist: " ; date
  2500.  
  2501. ### End of setdate.sh ###
  2502.  
  2503. ***************************************************************************
  2504.  
  2505. Hier ein 'Makefile', das ohne 'Make'-Programm auskommt:
  2506.  
  2507.     Es kann direkt von der Shell gestartet werden.
  2508.  
  2509. (Anm. d. ▄.: 'MakeDatei's beinhalten Informationen darⁿber, welche
  2510.      Datei(en) <A> von welchen anderen Datei(en) <B> abhΣngen,
  2511.      und wie die Datei <A> aus der Datei <B> neu erzeugt werden
  2512.      kann, wenn diese ein neueres Datum aufweist.)
  2513. (Anm. d. ▄.: Wollte ich schon immer mal schreiben :-)
  2514.  
  2515. ### make.sh ###
  2516.  
  2517. if -t Shell.syms Shell.h; cc +HShell.syms Shell.h; rm shell.o; endif
  2518. if -t RAM:Shell.syms Shell.syms; cp -d Shell.syms RAM:; endif
  2519.  
  2520. foreach i ( main comm1 comm2 comm3 execom globals rawconsole run set \
  2521.  sub ) "if -t $i.o $i.c; echo Compile $i...;cc +IRAM:shell.syms $i.c; endif"
  2522.  
  2523. # Die Fortsetzung einer Zeile in der nΣchsten Zeile (mit '\') wurde aus
  2524. # Grⁿnden der ▄bersichtlichkeit angewendet.
  2525. # Dies ist jedoch nicht notwendig; kann auch alles in eine Zeile
  2526. # geschreiben werden, da kein Limit von 256 Zeichen pro Zeile mehr besteht.
  2527.  
  2528. if -t Shell run.o main.o comm1.o comm2.o comm3.o execom.o \
  2529. set.o sub.o globals.o rawconsole.o
  2530.     ln +q -m -o Shell run.o main.o comm1.o comm2.o comm3.o\
  2531.     execom.o set.o sub.o globals.o rawconsole.o -la -lc
  2532. endif
  2533.  
  2534. ### Ende von make.sh ###
  2535.  
  2536.  
  2537. XIII. Vorgabe Werte
  2538. --------------------
  2539.  
  2540. Einige Aliase sind vordefiniert wenn eine neue Shell gestartet wird,
  2541.  dies sind:
  2542.  
  2543.  CDIR
  2544.     Ein cdir <Ordner> bewirkt: L÷schen des CLI-Fensters,Wechsel zum
  2545.      angegebenen Ordner und Auflistung des Inhalts.
  2546.  
  2547.  CLS
  2548.     CLI-Fenster l÷schen. (Auch im Terminal-Modus)
  2549.  
  2550.  DSWAP
  2551.     Wechsel zwischen aktuellem und vorherigen Ordner.
  2552.     Sollte in Skripten verwendet werden, da das Sonderzeichen fⁿr
  2553.      das vorherige Ordner sich m÷glicherweise Σndern wird.
  2554.  
  2555.  EXIT
  2556.     Csh verlassen und CLI beenden.
  2557.  
  2558.  MANLIST
  2559.     Ausgabe einer Liste aller m÷glichen Argumente (also Kommandos)
  2560.      fⁿr 'man'.
  2561.  
  2562. Desweiteren sind einige Variablen und Funktionstasten vordefiniert.
  2563. Mit dem 'set' Kommando k÷nnen diese angesehen werden.
  2564.  
  2565.  
  2566. XIV. Objektorientierte Eigenschaften
  2567. -------------------------------------
  2568.  
  2569. Dateiklassen haben zwei nⁿtzliche Eigenschaften:
  2570.  
  2571.     1. Die Identifizierung des Dateityps (Bild, Archiv, Animation, usw.)
  2572.  
  2573.     2. Das ▄berladen ('overloading') von Kommandos.
  2574.      'overloading' bedeutet den Gebrauch desselben Kommandos auf
  2575.      Dateien verschiedenen Typs, wobei die jeweils ausgefⁿhrten
  2576.      Aktionen von Typ zu Typ vollkommen unterschiedlich sein k÷nnen.
  2577.      Der Sinn sollte durch die folgenden Beispiele klar werden.
  2578.  
  2579. (Anm. d .▄.: Wem diese Materie auf den ersten Blick zu kompliziert oder
  2580.      abstrakt erscheint, der sollte nicht gleich aufgeben, sondern
  2581.      mit dem Klassen-Mechanismus ein wenig herumspielen. Er kann
  2582.      sehr hilfreich sein.)
  2583.  
  2584.     DATEIKLASSEN
  2585.  
  2586.     Klassen von Dateien k÷nnen mit Hilfe mehrerer 'class' Kommandos
  2587.      definiert werden, hier ein einfaches Beispiel:
  2588.  
  2589.       class bild suff=.pic suff=.iff suff=.ilbm
  2590.       class anim suff=.anim
  2591.  
  2592.     Nach Ausfⁿhrung dieser Kommandos kann die Csh jede Datei mit den
  2593.      Suffixen .pic, .iff oder .ilbm als ein Bild (bild) identifizieren.
  2594.  
  2595.     Anmerkung: Es dⁿrfen keine Leerzeichen zwischen den Namen und dem
  2596.          '=' stehen, Leerzeichen innerhalb des Namens mⁿssen in
  2597.          Anfⁿhrungszeichen stehen.
  2598.  
  2599.     Dies sind M÷glichkeiten, eine Datei zu identifizieren:
  2600.  
  2601.      suff=.doc     Erfⁿllt, wenn der Suffix der Datei '.doc' lautet
  2602.      name=readme     Erfⁿllt, wenn der Name der Datei "readme" ist
  2603.      name="mod.*"     Erfⁿllt, wenn der Name der Datei mit 'mod.' beginnt
  2604.      offs=14,DC..C4FD Erfⁿllt, wenn die Bytes beginnend mit Byte $14
  2605.               lauten: $DC, <irgendwas>, $C4, $FD
  2606.               (alle Zahlen hexadezimal!).
  2607.      Jedes Paar von Punkten ('..') steht fⁿr ein zu
  2608.      ignorierendes Byte .
  2609.      chars         Erfⁿllt wenn 90% aller Bytes der Datei im Bereich
  2610.              32..127 oder 9..13 liegen
  2611.      default    Immer erfⁿllt, wird verwendet, um den Vorgabe-Typ
  2612.              zu definieren
  2613.  
  2614.     Anmerkung: Nur das erste Zeichen wird betrachtet, so steht z. B.
  2615.      's' fⁿr 'suff'.
  2616.  
  2617.     Eine Klasse kann in mehr als einem 'class' Kommando spezifiziert
  2618.      werden. Die Identifizierung erfolgt in der gleichen Reihenfolge,
  2619.      in der die 'class' Kommandos eingegeben wurden.
  2620.     Um zum Beispiel sicherzustellen, da▀ ein irrtⁿmlich mit dem Suffix
  2621.      '.lzh' benanntes 'zoo'-Archiv korrekt identifiziert wird,
  2622.      k÷nnen die folgenden 'class' Kommandos verwendet werden:
  2623.  
  2624.      class zoo offs=14,DCA7C4FD
  2625.      class lzh offs=2,2D6C68..2D
  2626.      class zoo suff=.zoo
  2627.      class lzh suff=.lzh
  2628.  
  2629.     Es existiert auch eine eingebaute Klasse 'dir', die ein Ordner
  2630.      beschreibt.
  2631.  
  2632.     Zu diesem Zeitpunkt kennen wir verschiedene Typen von Dateien,
  2633.      aber was kann damit nun anfangen werden ? Dazu werden Aktionen
  2634.      (actions) ben÷tigt, die im folgenden erlΣutert werden sollen.
  2635.  
  2636.     AKTIONEN UND AKTIONSDEFINITIONEN F▄R KLASSEN
  2637.  
  2638.     Fⁿr eine Klasse k÷nnen die verschiedenen Aktionen in einem oder auch
  2639.      in mehreren 'class' Kommandos definiert werden.
  2640.  
  2641.      class zoo actions view="zoo -list" extr="zoo -extract"
  2642.      class lzh actions view="lz l"
  2643.      class lzh actions extr="lz e"
  2644.  
  2645.     Wenn nun versucht wird, mit der Aktion 'view' eine Datei 'test.zoo'
  2646.      anzusehen, so wird letztendlich die Befehlszeile
  2647.      'zoo -list test.zoo' ausgefⁿhrt, Eine Datei 'test.lzh' aber wird
  2648.      mit 'lz l test.lzh' bei 'view test.lzh' interpretiert.
  2649.  
  2650.     Anmerkung: Jedes angegebene Kommando durchlΣuft den normalen
  2651.      Csh-Interpreter, d.h. AmigaDOS- and Csh-Pfade werden durchsucht.
  2652.      Aliases mit Argumenten sind auch erlaubt, alle vom
  2653.      Benutzer eingegebenen Argumente werden in die Variable
  2654.      hinter dem '%' gespeichert.
  2655.  
  2656.  
  2657.     Wie kann einer Datei nun mitgeteilt werden, da▀ angesehen ('view')
  2658.      werden soll ? Dies geschieht mit einem weiteren Kommando fⁿr objekt-
  2659.      orientierte Dateibearbeitung.
  2660.  
  2661.     Das Kommando
  2662.  
  2663.      action view test.zoo
  2664.  
  2665.     wird als erstes versuchen, den Typ der angegebenen Datei zu ermitteln,
  2666.      und dann - falls dies erfolgreich war - die 'view' Aktion auf die Datei
  2667.      anwenden.
  2668.     Diese Befehlsfolge kann durch die Gebrauch eines 'alias' vereinfacht
  2669.      werden:
  2670.  
  2671.      alias v "action view"
  2672.  
  2673.      definiert ein 'v' Kommando, mit dem alle der Csh bekannten
  2674.      Dateitypen angesehen werden k÷nnen.
  2675.  
  2676.     alias xtr "action extr"
  2677.  
  2678.      definiert analog ein Kommando 'xtr' mit dem alle der Csh bekannten
  2679.      Archivtypen ausgepackt werden k÷nnen.
  2680.  
  2681.     Es gibt eine Aktion, die an eine Datei geschickt wird, die gestartet
  2682.      wurde, aber nicht ausfⁿhrbar ist (s. Kapitel VIII).
  2683.      Diese Aktion lautet 'exec'.
  2684.     Es sei eine Klasse 'picture' definiert, nach Eingabe von
  2685.  
  2686.      class picture actions view=Mostra exec=Mostra
  2687.  
  2688.      kann ein Bild mit Hilfe des Anzeigeprogramms 'Mostra'
  2689.      angesehen werden, indem einfach der Namen des Bildes eingegeben
  2690.      wird.
  2691.     Anmerkung: Die Namen fⁿr die Aktionen sind im allgemeinen frei
  2692.      wΣhlbar, dabei bildet (s.o.) die Aktion 'exec' eine
  2693.      Ausnahme, weiterhin k÷nnten zukⁿnftig Aktionen wie 'rm'
  2694.      und 'dir' implemtiert werden, d.h. fⁿr eigene Aktionen sollten
  2695.      keine Namen eingebauter Funktionen verwendet werden.
  2696.  
  2697.     Die Source-Datei class.sh definiert ein paar nⁿtzliche Klassen.
  2698.  
  2699.     ▄BERKLASSEN
  2700.  
  2701.     Angenommen es existiert eine Klasse fⁿr .c Dateien, eine
  2702.      fⁿr .h Dateien und eine fⁿr .asm Dateien. Diese wollen unterschieden
  2703.      werden aber letzten Endes sind es doch alles ASCII Dateien.
  2704.      Das kann wie folgt festgelegt werden:
  2705.  
  2706.       class c_source suff=.c is=ascii
  2707.  
  2708.     Wenn jetzt eine Aktion auf einer Datei des Tps c_source nicht
  2709.      ausgefⁿhrt werden kann, dann wird die Datei vom Typ ascii
  2710.      intepretiert, und dieselbe Aktion wird erneut ausgefⁿhrt. Dies
  2711.      geschieht solange, bis eine Klasse keine ▄berklasse mehr besitzt.
  2712.  
  2713.  
  2714. XV. Keymaps (Tastaturbelegungen)
  2715. --------------------------------
  2716.  
  2717.     Eine Keymap wird als eine Sammlung von 'Taste-Funktion'-Paaren
  2718.      definiert. Beide werden durch eine Nummer identifiziert.
  2719.     Es kann mehrere Keymaps geben, die sich gegenseitig aktivieren
  2720.      k÷nnen, am Anfang werden wir uns aber auf Keymap 0 beziehen.
  2721.      Dies ist die Keymap, die bei Shell-Start aktiv ist.
  2722.     Alle vom Benutzer definierten Tasten ⁿberschreiben m÷glicherweise
  2723.      alte Definitionen der entsprechenden keymap.
  2724.  
  2725.     Alle mit (*) markierten Funktionen sind bisher nicht implementiert.
  2726.  
  2727.     TASTENKODES
  2728.  
  2729.     1..255      Das entsprechende ASCII-Zeichen
  2730.     256     Pfeil nach oben
  2731.     257     Pfeil nach unten
  2732.     258     Pfeil nach rechts
  2733.     259     Pfeil nach links
  2734.     260     'Help'-Taste
  2735.     261..270 F1..F10 (ohne Shift)
  2736.  
  2737.  
  2738.     Modifiers , also Shift, Alt, Amiga, Ctrl (zum Tastaturcode addieren)
  2739.  
  2740.     512 SHIFT (nur notwendig fⁿr Pfeile und Funktionstasten)
  2741.     1024 ESC (wenn gedrⁿckt und losgelassen vor Taste)
  2742.  
  2743.     EDITORFUNkTIONEN
  2744.  
  2745.     - Bewegungen     bewege Cursor ...
  2746.      0 CursLeft     1 links
  2747.      1 CursRight     1 rechts
  2748.      2 WordLeft     1 Wort links
  2749.      3 WordRight     1 Wort rechts
  2750.      4 BegOfLine     an den Anfang der Zeile
  2751.      5 EndOfLine     an das Ende der Zeile
  2752.  
  2753.     - L÷schen     l÷sche ...
  2754.     10 Backspace     Zeichen links vom Cursor
  2755.     11 Delete     Zeichen rechts vom Cursor
  2756.     12 BkspcWord     Wort links vom Cursor
  2757.     13 DelWord Wort    rechts vom Cursor
  2758.     14 DeleteToSOL     vom Anfang der Zeile bis Cursor
  2759.     15 DeleteToEOL     von Cursor bis Ende der Zeils
  2760.     16 DeleteLine     ganze Zeile
  2761.  
  2762.     - aus Kommandospeicher einfⁿgen
  2763.     20 Back     Vorherige Zeile holen
  2764.     21 Forward     NΣchste Zeile holen
  2765.     22 Beg         Erste Zeile aus Kommandospeicher holen
  2766.     23 End         Letze Zeile aus Kommandospeicher holen
  2767.     24 Complete     Zeile aus dem Kommandospeicher vervollstΣndigen
  2768.             (wie '!')
  2769.     25 Exec     Kommandospeicher-Zeile ausfⁿhren
  2770.             und nΣchste Zeile holen
  2771.     26 Tail     Vorherige Zeile holen, dabei erstes Wort weglassen
  2772.     27 Bottom     Eine Zeile weiter als letzte Kommandospeicher-Zeile
  2773.             nach unten
  2774.     28 DupWord     Letztes Wort der aktuellen Zeile verdoppeln
  2775.  
  2776.     - Completion (Dateinamen vervollstΣndigen)
  2777.     30 Normal     Erstes passendes Wort einfⁿgen bzw. zum nΣchsten Wort
  2778.     31 Partial     Alle Dateien einfⁿgen, die die Zeichenkette enthalten
  2779.     32 All         Alle passenden Dateien einfⁿgen
  2780.     33 Ordner     Ordnernamen aus Tabelle (qcd) holen
  2781.     34 LastCD     Vorherigen Ordner einfⁿgen
  2782.     35 Show Alle     passenden Dateien auflisten
  2783.  
  2784.     - Spezielles
  2785.     40 Insert     Umschaltung ▄berschreiben/Einfⁿgen
  2786.     41 Quit     Shell beenden
  2787.     42 Help     Help aufrufen
  2788.     43 Refresh     Aktuelle Zeile neu schreiben
  2789.     44 Execute     Aktuelle Zeile ausfⁿhren
  2790.     45 Leave     Aktuelle Zeile in Kommandospeicher speichern, weiter
  2791.             mit neuer Zeile
  2792.     46 EOF         Shell beenden bzw. Dateiende anzeigen
  2793.     47 NOP         (No OPeration) keine Aktion
  2794.     48 Echo^O     ^O ausgeben
  2795.     49 Beep     ^G ausgeben
  2796.  
  2797.     - Sonstiges
  2798.     50 Fkey     Kommando der letzten Funktionstaste ausfⁿhren
  2799.     51 Menu     Kommando der letzten Menⁿfunktion ausfⁿhren
  2800.     52 Undo     Letztes Edierkommando wiederholen
  2801.     53 Repeat     Letzte Funktion wiederholen
  2802.     54 SwapChar     Die beiden Zeichen links vom Cursor vertauschen
  2803.  
  2804.  
  2805.     Kommandotypen
  2806.  
  2807.     0 +x         Funktion mit Nummer 'x' gemΣ▀ obiger Liste
  2808.     512 +x         Auf Keymap Nummer 'x' umschalten , x=0..7
  2809.     1024+x         Zeichen mit ASCII-Nummer 'x' einfⁿgen , x=1..255
  2810.     1536+x         Makro x ausfⁿhren , x=1..15 (*)
  2811.     2048+x         Zeichenkette x einfⁿgen , x=1..15 (*)
  2812.  
  2813.     Beispiel:
  2814.  
  2815.     keymap 0 66=49     # B = Piepton
  2816.     keymap 0 2=16     # ^B = Zeile l÷schen
  2817.     keymap 0 1122=35 # ESC-b = passende Dateien auflisten
  2818.              # 1122 = 1024(ESC) + 98(b)
  2819.  
  2820.     keymap 0 771=4     # Shift-<Pfeiltaste Links> = Zeilenanfang
  2821.              # 771 = 512(Shift) + 259(<Pfeiltaste Links>)
  2822.     keymap 0 770=5     # Shift-<Pfeiltaste Rechts> = Zeilenende
  2823.  
  2824.  
  2825.  
  2826. GLOSSAR
  2827. -------
  2828. Alias        Ein alternativer Name fⁿr ein Kommando oder
  2829.          Kommandoabfolge die mit dem Alias Kommando
  2830.          spezifiziert wird.
  2831. Application    Allgemein ein Programmpaket, etwa DPaint.
  2832. Archive        Eine Kopie/Backup einer Datei, Meist ist das Archive-Bit
  2833.          gemeint, welches angibt, ob von der Datei bereits eine
  2834.          Sicherheitskopie gemacht wurde.
  2835. Argument    Eine zusΣtzliche Information, die an ein Kommando
  2836.          ⁿbergeben wird, wie etwa Dateiname, Werte oder Optionen.
  2837. ASCII        American Standard Code for Information Interchange,
  2838.          Standard fⁿr ComputerzeichensΣtze.
  2839. Assign        Eine Verbindung eines physikalischen Ordners zu einem
  2840.          logischen GerΣtenamens. Etwa RAM:T ist meist als T: bekannt.
  2841. Backup        Eine Kopie einer Datei auf einem physikalisch externen GerΣt,
  2842.          z.B. Streamer, Diskette.
  2843. Binary        BinΣres (dual) Zahlensystem, hier ist aber oft eine Datei
  2844.          gemeint die auch non-Ascii Zeichen enthΣlt (Zeichen mit
  2845.          Ascii-Kode >128), etwa ausfⁿhrbare Programme.
  2846. Bit        (engl. 'ein bi▀chen') BinΣre Einheit, hier oft als Flag,
  2847.          also Vorzeichen gemeint.
  2848. Block         Serie von 512 Bytes auf GerΣt.
  2849. Byte        Speichereinheit von 8 Bits LΣnge, normal genau die
  2850.          Information fⁿr ein Zeichen.
  2851. Chip        Hiermit ist der Speicherbereich gemeint, der auf dem Amiga
  2852.          den Customchips zu verfⁿgung steht. Auch als
  2853.          Grafikspeicher bekannt. Meist 1 MB RAM (A500, A2000) oder
  2854.          2 MB (A3000,A500+).
  2855. CLI        Command Line Interface. Damit ist das Programm gemeint,
  2856.          welches ⁿberhaupt die Kommunikation per Tastatur mit dem
  2857.          Rechner erm÷glicht (Shell).
  2858. Compiler    Programm, welches ein rohes Programm in einer h÷heren
  2859.          Sprache, etwa C, geschrieben, in eine dem Rechner tatsΣchlich
  2860.          verstΣndliche Instruktionsfolge ⁿbersezt.
  2861. Cursor        Die kleine rechteckige Farbmarkierung, unter der die
  2862.          magischen Zeichen erscheinen.
  2863. Default        Vorgabewert, Vorgabezustand.
  2864. Delete        Physikalisch L÷schen, entfernen.
  2865. Device        Siehe GerΣt.
  2866. Directory    Verzeichniss. Ordner. Schublade. Ablage im Dateibaum.
  2867. DOS        Disk Operating System. Eigentliches Betriebsystem.
  2868.          Erm÷glicht erst die Dateioperationen.
  2869. Editor        Programm um Texte einzugeben, etwa ED.
  2870. Environment Variable    Eine Variable in der ein Wert oder eine
  2871.          Zeichenkette temporΣr abgespeichert werden kann.
  2872. Fast        Genereller Speicher des Amigas. Kann von den Custom Chips
  2873.          nicht angesprochen werden.
  2874. File        Datei, Folge von Zeichen.
  2875. Flag        Vorzeichen, Indikator fⁿr bestimmten Status.
  2876. Gb        Gigabyte, 1024 Megabytes. (1 Milliarde Zeichen)
  2877. GerΣt        Physikalischer Mechanismus, etwa Diskette DF0: oder
  2878.          aber auch logische Einheit wie RAM: um Daten abzuspeichern
  2879.          oder zu laden.
  2880. Hard Disk    Festplatte. Moderner, schneller Massenspeicher. Abk. HD.
  2881. Hexadezimal    Auf dem 16-er System basierendes Zahlensystem. Zahlen
  2882.          gr÷▀er 9 werden durch die Zeichen A-F gegeben.
  2883.          Eigentlich grie. Sedesimal.
  2884. History        Kommando(Vergangenheits)speicher. Liste mit den zuletzt
  2885.          ausgefⁿhrten Kommandos.
  2886. Kb        Kilobyte, 1024 Bytes.
  2887. Keymap        Tastaturbelegung, ist auf dem Amiga variabel.
  2888. Kickstart    Oft auch als ROM bezeichnet. Bei alten Amigas per
  2889.          Diskette zu laden, beinhΣlt grundlegende Software.
  2890. Link        Zeiger, Verbindung auf eine Datei.
  2891. Lokal        Nur innerhalb einer Prozedur gⁿltige Option, Variable.
  2892. Mb        Megabyte, 1024 Kb (1 Million Zeichen)
  2893. Memory        Speicher.
  2894. Menu        Liste von Auf-dem-Schirm Optionen. Mit dem Menuknopf
  2895.          (Rechte Maustaste) erhΣltliche Optionenliste.
  2896. Menu Item    Option im Menu. Menupunkt.
  2897. Multitasking    StΣrke des Amigas. Hiermit wird die FΣhigkeit bezeichnet,
  2898.          mehrere Programme scheinbar gleichzeitig auszufⁿhren.
  2899. Offset        Hier ist damit eine Folge von Bytes gemeint.
  2900. Partition    Einteilung auf Festplatte, die somit mehrere logische
  2901.          GerΣte zur Verfⁿgung stellt.
  2902. Path        Pfad. Weg innerhalb des Dateibaums von Wurzel zu Blatt,
  2903.          hier Datei. Auch Suchpfad, also Zeichenkette, die
  2904.          mehrere Pfade beinhΣlt, die angibt wo Programme bei Aufruf
  2905.          zu suchen sind.
  2906. Pattern        Suchmuster.
  2907. Pipe        (engl. Rohr) Datenstrom, dieser kann von einem Programm
  2908.          an das NΣchste ⁿbergeben werden.
  2909. Process        Task, laufendes Programm. Folge von Instruktionen.
  2910. Prompt        Eingabeaufforderungstext. Etwa 1>:
  2911. Pure        Ein Sicherheits-Bit, welches angibt ob ein Programm
  2912.          resident geladen werden kann. Muss vom Compiler unterstⁿzt
  2913.          werden.
  2914. RAM        Random Access Memory. Generel zugΣngiger Speicher.
  2915. RAM Disk    Logisches GerΣt im Speicher. Ist dynamisch aufgebaut. Nur
  2916.          durch SpeicherkapazitΣt begrenzt.
  2917. Requester    Fenster in dem eine Datei interaktiv spezifiziert weden kann.
  2918. Resident    Ein Programm kann in den Speicher geladen werden, es wird
  2919.          dann nur noch direkt im Speicher aufgerufen, braucht nicht
  2920.          mehr erneut geladen werden. Enormer Zeitvorteil bei oft
  2921.          vorkommenden Programmen.
  2922. Return Kode    Rⁿckgabewert von Programmen oder Stapeldateien. Damit
  2923.          kann auf erfolgreichen Durchlauf eines Programms gecheckt
  2924.          werden.
  2925. ROM        Read Only Memory. Speicherbereich, der nicht gel÷scht
  2926.          oder beschrieben werden kann, BeinhΣlt normal ein
  2927.          grundlegendes Betriebsystem.
  2928. Screen        Grafische FΣhigkeit des Amigas. Es k÷nnen mehrere solcher
  2929.          Schirme, auch mit verschiedenen Aufl÷sungen ge÷ffnet werden.
  2930. Scroll        Verschieben eines Textes nach oben (oder generell in eine
  2931.          Richtung).
  2932. Shell        (engl. Muschel, Umgebung) Erweiterter CLI. Programm zur
  2933.          Kommunikation mit dem Computer.
  2934. Source        Quellkode. Hier ist damit aber der Vorgang gemeint, eine
  2935.          Stapeldatei zu interpretieren und ablaufen zu lassen.
  2936. Stack        Ein spezieller Bereich des RAMs der allen Programmen fⁿr
  2937.          temporΣre Speicherung dient.
  2938. Stapeldatei    Abfolge von Kommandos die in einer Datei zusammengefasst
  2939.          sind. Dies erm÷glicht auch eine Steuerung durch Sprungmarken
  2940.          und Schleifen.
  2941. String        Zeichenkette.
  2942. Suchmuster    Vorgegebenes Muster nach dem etwas durchsucht werden
  2943.          soll. Platzhalter und Kriterien.
  2944. Syntax        Grammatik. Regel.
  2945. Volume        GerΣtename. (Etwa Workbench:)
  2946. Workbench    Graphische BenutzeroberflΣche des Amigas.
  2947. Zeichenkette    Folge von Zeichen. Intern duch ein Null-Zeichen
  2948.          abgeschlossen. Kann auch eine Matrix beinhalten.
  2949. QED.
  2950.