Vordefinierte globale Variablen
Einige der vordefinierten globalen Variablen haben Synonyme, die über das Modul English verfügbar sind. Für jede dieser Variablen wird das englische Synonym angegeben.
Zur Verwendung des Moduls
require 'English'
Kurz gesagt
Ausnahmen
| Variable | English | Enthält | Initial | Nur-Lese | Zurückgesetzt durch |
|---|---|---|---|---|---|
$! |
$ERROR_INFO |
Ausnahmeobjekt oder nil |
nil |
Ja | Kernel#raise |
$@ |
$ERROR_POSITION |
Array von Backtrace-Positionen oder nil |
nil |
Ja | Kernel#raise |
Abgeglichene Daten
| Variable | English | Enthält | Initial | Nur-Lese | Zurückgesetzt durch |
|---|---|---|---|---|---|
$~ |
$LAST_MATCH_INFO |
MatchData-Objekt oder nil |
nil |
Nein | Matcher-Methoden |
$& |
$MATCH |
Abgeglichener Teilstring oder nil |
nil |
Nein | Matcher-Methoden |
$` |
$PRE_MATCH |
Teilstring links vom Treffer oder nil |
nil |
Nein | Matcher-Methoden |
$' |
$POST_MATCH |
Teilstring rechts vom Treffer oder nil |
nil |
Nein | Matcher-Methoden |
$+ |
$LAST_PAREN_MATCH |
Zuletzt abgeglichene Gruppe oder nil |
nil |
Nein | Matcher-Methoden |
$1 |
Zuerst abgeglichene Gruppe oder nil |
nil |
Ja | Matcher-Methoden | |
$2 |
Zweite abgeglichene Gruppe oder nil |
nil |
Ja | Matcher-Methoden | |
$n |
n-te abgeglichene Gruppe oder nil |
nil |
Ja | Matcher-Methoden |
Trennungen
| Variable | English | Enthält | Initial | Nur-Lese | Zurückgesetzt durch |
|---|---|---|---|---|---|
$/, $-0 |
$INPUT_RECORD_SEPARATOR |
Eingabedatensatztrennung | Neue Zeile | Nein | |
$\ |
$OUTPUT_RECORD_SEPARATOR |
Ausgabedatensatztrennung | nil |
Nein |
Streams
| Variable | English | Enthält | Initial | Nur-Lese | Zurückgesetzt durch |
|---|---|---|---|---|---|
$stdin |
Standard-Eingabestream | STDIN |
Nein | ||
$stdout |
Standard-Ausgabestream | STDOUT |
Nein | ||
$stderr |
Standard-Fehlerstrom | STDERR |
Nein | ||
$< |
$DEFAULT_INPUT |
Standardmäßige Standardeingabe | ARGF |
Ja | |
$> |
$DEFAULT_OUTPUT |
Standardmäßige Standardausgabe | STDOUT |
Nein | |
$. |
$INPUT_LINE_NUMBER, $NR |
Eingabeposition des zuletzt gelesenen Streams | 0 | Nein | Bestimmte Lesemethoden |
$_ |
$LAST_READ_LINE |
String aus dem zuletzt gelesenen Stream |
nil |
Nein | Bestimmte Lesemethoden |
Prozesse
| Variable | English | Enthält | Initial | Nur-Lese | Zurückgesetzt durch |
|---|---|---|---|---|---|
$0, $PROGRAM_NAME |
Programmname | Programmname | Nein | ||
$* |
$ARGV |
ARGV-Array | ARGV |
Ja | |
$$ |
$PROCESS_ID, $PID |
Prozess-ID | Prozess PID | Ja | |
$? |
$CHILD_STATUS |
Status des zuletzt beendeten Kindprozesses | nil |
Ja | |
$LOAD_PATH, $:, $-I |
Array von Suchpfaden | Ruby-Standardwerte | Ja | ||
$LOADED_FEATURES, $" |
Array von Ladepfaden | Ruby-Standardwerte | Ja |
Debugging
| Variable | English | Enthält | Initial | Nur-Lese | Zurückgesetzt durch |
|---|---|---|---|---|---|
$FILENAME |
Von der Methode ARGF.filename zurückgegebener Wert |
Kommandozeilenargument oder „-“ | Ja | ||
$DEBUG |
Ob die Option -d oder --debug gegeben wurde |
Kommandozeilenoption | Nein | ||
$VERBOSE |
Ob die Option -V oder -W gegeben wurde |
Kommandozeilenoption | Nein |
Andere Variablen
| Variable | English | Enthält | Initial | Nur-Lese | Zurückgesetzt durch |
|---|---|---|---|---|---|
$-F, $; |
Mit der Kommandozeilenoption -F angegebener Separator |
||||
$-a |
Ob die Option -a gegeben wurde |
Ja | |||
$-i |
Mit der Kommandozeilenoption -i angegebene Erweiterung |
Nein | |||
$-l |
Ob die Option -l gegeben wurde |
Ja | |||
$-p |
Ob die Option -p gegeben wurde |
Ja | |||
$F |
Array von $_, aufgeteilt nach $-F |
Ausnahmen
$! (Ausnahme)
Enthält das von Kernel#raise gesetzte Exception-Objekt
begin raise RuntimeError.new('Boo!') rescue RuntimeError p $! end
Ausgabe
#<RuntimeError: Boo!>
English - $ERROR_INFO
$@ (Backtrace)
Gleich wie $!.backtrace; gibt ein Array von Backtrace-Positionen zurück
begin raise RuntimeError.new('Boo!') rescue RuntimeError pp $@.take(4) end
Ausgabe
["(irb):338:in `<top (required)>'", "/snap/ruby/317/lib/ruby/3.2.0/irb/workspace.rb:119:in `eval'", "/snap/ruby/317/lib/ruby/3.2.0/irb/workspace.rb:119:in `evaluate'", "/snap/ruby/317/lib/ruby/3.2.0/irb/context.rb:502:in `evaluate'"]
English - $ERROR_POSITION.
Abgeglichene Daten
Diese globalen Variablen speichern Informationen über den letzten erfolgreichen Abgleich im aktuellen Geltungsbereich.
Details und Beispiele finden Sie unter Regexp Global Variables.
$~ (MatchData)
MatchData-Objekt, das aus dem Abgleich erstellt wurde; Thread-lokal und Frame-lokal.
English - $LAST_MATCH_INFO.
$& (Abgeglichener Teilstring)
Der abgeglichene String.
English - $MATCH.
$` (Pre-Match-Teilstring)
Der String links vom Treffer.
English - $PREMATCH.
$' (Post-Match-Teilstring)
Der String rechts vom Treffer.
English - $POSTMATCH.
$+ (Zuletzt abgeglichene Gruppe)
Die zuletzt abgeglichene Gruppe.
English - $LAST_PAREN_MATCH.
$1, $2, usw. (Abgeglichene Gruppe)
Für $n die n-te Gruppe des Abgleichs.
Kein Englisch.
Trennungen
$/ (Eingabedatensatztrennung)
Eine Eingabedatensatztrennung, initial neue Zeile. Gesetzt durch die Kommandozeilenoption -0.
Das Setzen auf einen Wert ungleich nil durch andere Mittel als die Kommandozeilenoption ist veraltet.
English - $INPUT_RECORD_SEPARATOR, $RS.
Aliasiert als $-0.
$\ (Ausgabedatensatztrennung)
Eine Ausgabedatensatztrennung, initial nil.
Kopiert von $/, wenn die Kommandozeilenoption -l gegeben wird.
Das Setzen auf einen Wert ungleich nil durch andere Mittel als die Kommandozeilenoption ist veraltet.
English - $OUTPUT_RECORD_SEPARATOR, $ORS.
Streams
$stdin (Standardeingabe)
Der aktuelle Standard-Eingabestream; initial
$stdin # => #<IO:<STDIN>>
$stdout (Standardausgabe)
Der aktuelle Standard-Ausgabestream; initial
$stdout # => #<IO:<STDOUT>>
$stderr (Standardfehler)
Der aktuelle Standard-Fehlerstrom; initial
$stderr # => #<IO:<STDERR>>
$< (ARGF oder $stdin)
Zeigt auf den Stream ARGF, wenn nicht leer, sonst auf den Stream $stdin; nur Lesezugriff.
English - $DEFAULT_INPUT.
$> (Standardmäßige Standardausgabe)
Ein Ausgabestream, initial $stdout.
English - $DEFAULT_OUTPUT
$. (Eingabeposition)
Die Eingabeposition (Zeilennummer) im zuletzt gelesenen Stream.
English - $INPUT_LINE_NUMBER, $NR
$_ (Zuletzt gelesene Zeile)
Die Zeile (String) aus dem zuletzt gelesenen Stream.
English - $LAST_READ_LINE.
Prozesse
$0
Initial enthält den Namen des auszuführenden Skripts; kann neu zugewiesen werden.
$* (ARGV)
Zeigt auf ARGV.
English - $ARGV.
$$ (Prozess-ID)
Die Prozess-ID des aktuellen Prozesses. Gleiches wie Process.pid.
English - $PROCESS_ID, $PID.
$? (Kindstatus)
Initial nil, ansonsten das Process::Status-Objekt, das für den zuletzt beendeten Kindprozess erstellt wurde; Thread-lokal.
English - $CHILD_STATUS.
$LOAD_PATH (Ladepfad)
Enthält das Array von Pfaden, das von Kernel#load und Kernel#require durchsucht wird.
Die Singleton-Methode $LOAD_PATH.resolve_feature_path(feature) gibt zurück
-
[:rb, path], wobeipathder Pfad zur Ruby-Datei ist, die für das gegebenefeaturegeladen werden soll. -
[:so, path], wobeipathder Pfad zur gemeinsam genutzten Objektdatei ist, die für das gegebenefeaturegeladen werden soll. -
nil, wenn es kein solchesfeatureund keinen solchenpathgibt.
Beispiele
$LOAD_PATH.resolve_feature_path('timeout') # => [:rb, "/snap/ruby/317/lib/ruby/3.2.0/timeout.rb"] $LOAD_PATH.resolve_feature_path('date_core') # => [:so, "/snap/ruby/317/lib/ruby/3.2.0/x86_64-linux/date_core.so"] $LOAD_PATH.resolve_feature_path('foo') # => nil
Aliasiert als $: und $-I.
$LOADED_FEATURES
Enthält ein Array der Pfade zu den geladenen Dateien
$LOADED_FEATURES.take(10) # => ["enumerator.so", "thread.rb", "fiber.so", "rational.so", "complex.so", "ruby2_keywords.rb", "/snap/ruby/317/lib/ruby/3.2.0/x86_64-linux/enc/encdb.so", "/snap/ruby/317/lib/ruby/3.2.0/x86_64-linux/enc/trans/transdb.so", "/snap/ruby/317/lib/ruby/3.2.0/x86_64-linux/rbconfig.rb", "/snap/ruby/317/lib/ruby/3.2.0/rubygems/compatibility.rb"]
Aliasiert als $".
Debugging
$FILENAME
Der von der Methode ARGF.filename zurückgegebene Wert.
$DEBUG
Initial true, wenn die Kommandozeilenoption -d oder --debug gegeben wurde, andernfalls initial false; kann im laufenden Programm auf beide Werte gesetzt werden.
Wenn true, wird jede ausgelöste Ausnahme an $stderr ausgegeben.
Aliasiert als $-d.
$VERBOSE
Initial true, wenn die Kommandozeilenoption -v oder -w gegeben wurde, andernfalls initial false; kann im laufenden Programm auf beide Werte oder auf nil gesetzt werden.
Wenn true, werden Ruby-Warnungen aktiviert.
Wenn nil, werden Warnungen deaktiviert, einschließlich der von Kernel#warn.
Aliasiert als $-v und $-w.
Andere Variablen
$-F
Die Standard-Feldtrennung in String#split; muss ein String oder ein Regexp sein und kann mit der Kommandozeilenoption -F gesetzt werden.
Das Setzen auf einen Wert ungleich nil durch andere Mittel als die Kommandozeilenoption ist veraltet.
Aliasiert als $;.
$-a
Ob die Kommandozeilenoption -a gegeben wurde; nur Lesezugriff.
$-i
Enthält die mit der Kommandozeilenoption -i gegebene Erweiterung oder nil, falls keine.
Ein Alias für ARGF.inplace_mode.
$-l
Ob die Kommandozeilenoption -l gesetzt wurde; nur Lesezugriff.
$-p
Ob die Kommandozeilenoption -p gegeben wurde; nur Lesezugriff.
$F
Wenn die Kommandozeilenoption -a gegeben ist, wird das Array, das durch Aufteilen von $_ nach $-F entsteht, zu Beginn jeder -l/-p-Schleife zugewiesen.
Veraltet
$=
$,
Vordefinierte globale Konstanten
Zusammenfassung
Streams
| Konstante | Enthält |
|---|---|
STDIN |
Standard-Eingabestream. |
STDOUT |
Standard-Ausgabestream. |
STDERR |
Standard-Fehlerstrom. |
Umgebung
| Konstante | Enthält |
|---|---|
ENV |
Hash der aktuellen Umgebungsvariablennamen und -werte. |
ARGF |
String-Konkatenation von auf der Kommandozeile angegebenen Dateien oder $stdin, falls keine vorhanden sind. |
ARGV |
Array der gegebenen Kommandozeilenargumente. |
TOPLEVEL_BINDING |
Binding des Top-Level-Scopes. |
RUBY_VERSION |
String Ruby-Version. |
RUBY_RELEASE_DATE |
String Ruby-Veröffentlichungsdatum. |
RUBY_PLATFORM |
String Ruby-Plattform. |
RUBY_PATCH_LEVEL |
String Ruby-Patchlevel. |
RUBY_REVISION |
String Ruby-Revision. |
RUBY_COPYRIGHT |
String Ruby-Copyright. |
RUBY_ENGINE |
String Ruby-Engine. |
RUBY_ENGINE_VERSION |
String Ruby-Engine-Version. |
RUBY_DESCRIPTION |
String Ruby-Beschreibung. |
Eingebettete Daten
| Konstante | Enthält |
|---|---|
DATA |
File, der eingebettete Daten enthält (Zeilen nach __END__, falls vorhanden). |
Streams
STDIN
Der Standard-Eingabestream (der Standardwert für $stdin)
STDIN # => #<IO:<STDIN>>
STDOUT
Der Standard-Ausgabestream (der Standardwert für $stdout)
STDOUT # => #<IO:<STDOUT>>
STDERR
Der Standard-Fehlerstrom (der Standardwert für $stderr)
STDERR # => #<IO:<STDERR>>
Umgebung
ENV
Ein Hash der aktuellen Umgebungsvariablennamen und -werte
ENV.take(5) # => [["COLORTERM", "truecolor"], ["DBUS_SESSION_BUS_ADDRESS", "unix:path=/run/user/1000/bus"], ["DESKTOP_SESSION", "ubuntu"], ["DISPLAY", ":0"], ["GDMSESSION", "ubuntu"]]
ARGF
Die virtuelle Verkettung der auf der Kommandozeile angegebenen Dateien oder von $stdin, wenn keine Dateien angegeben wurden, "-" angegeben wird oder nachdem alle Dateien gelesen wurden.
ARGV
Ein Array der gegebenen Kommandozeilenargumente.
TOPLEVEL_BINDING
Die Binding des Top-Level-Scopes
TOPLEVEL_BINDING # => #<Binding:0x00007f58da0da7c0>
RUBY_VERSION
Die Ruby-Version
RUBY_VERSION # => "3.2.2"
RUBY_RELEASE_DATE
Der Veröffentlichungsdatum-String
RUBY_RELEASE_DATE # => "2023-03-30"
RUBY_PLATFORM
Die Plattformkennung
RUBY_PLATFORM # => "x86_64-linux"
RUBY_PATCHLEVEL
Der ganzzahlige Patchlevel für dieses Ruby
RUBY_PATCHLEVEL # => 53
Für eine Entwicklungsversion ist der Patchlevel -1.
RUBY_REVISION
Der Git-Commit-Hash für dieses Ruby
RUBY_REVISION # => "e51014f9c05aa65cbf203442d37fef7c12390015"
RUBY_COPYRIGHT
Der Copyright-String
RUBY_COPYRIGHT # => "ruby - Copyright (C) 1993-2023 Yukihiro Matsumoto"
RUBY_ENGINE
Der Name der Ruby-Implementierung
RUBY_ENGINE # => "ruby"
RUBY_ENGINE_VERSION
Die Version der Ruby-Implementierung
RUBY_ENGINE_VERSION # => "3.2.2"
RUBY_DESCRIPTION
Die Beschreibung der Ruby-Implementierung
RUBY_DESCRIPTION # => "ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux]"
Eingebettete Daten
DATA
Definiert, wenn und nur wenn das Programm diese Zeile hat
__END__
Wenn definiert, ist DATA ein File-Objekt, das die Zeilen nach __END__ enthält und an der ersten dieser Zeilen positioniert ist
p DATA DATA.each_line { |line| p line } __END__
Ausgabe
#<File:t.rb> "Foo\n" "Bar\n" "Baz\n"