!Mac OS X-10.15.7!ruby-2.7.1p83
Lassen Sie sie sich gleichzeitig an Muscheln, Emacs und Rubine erinnern. Auf diese Weise können Sie erkennen, wie nützlich die Sprache Ruby in der Umgebung von Shell ist. Wenn wir die Einheitlichkeit der Schlüsselbindung zwischen Emacs und Shell kennen, möchten wir auch verstehen, warum die Arbeitseffizienz von erfahrenen Programmierern gut ist.
Die Struktur dieses Textes ist
Es ist. Wenn Sie gemäß jeder Beschreibung vorgehen, sollten Sie in der Lage sein, den Inhalt zu verstehen.
Bitte überlegen Sie sich hier etwas, an das Sie sich erinnern sollten.
Dieser Text unterscheidet zwischen Shell-Eingabe und Quellcode-Eingabe in Emacs.
> cat hello.rb
Auf diese Weise ist das Hinzufügen einer Eingabeaufforderung (>) für die Shell-Eingabe vorgesehen. Die Ausgabe erfolgt normalerweise im Klartext.
puts "Hello world."
Mit diesem Gefühl wird es wie der Quellcode von Ruby ausgegeben.
puts hello_world
Zuallererst hallo \ _world.
Hello world.
Ich werde ein Programm zum Starten machen.
Es gibt verschiedene Möglichkeiten, um Strings mit Rubin herauszuholen. Sie können jeden von ihnen verwenden, und Rubyist wird je nach Situation alle verwenden.
method | Nutzungsstatus |
---|---|
Verwenden Sie es normal. Unterbrechungslinie erforderlich | |
puts | Dann benutze es normal.Automatischer Zeilenumbruch |
p | Wenn das Debuggen stattdessen während des Codierens gestartet wird |
pp | p hübscher Druck, require 'pp'Ist notwendig |
printf | Es gibt c. Nützlich beim Anpassen des Formats |
Es gibt viele andere, aber erinnern wir uns zuerst daran.
Es gibt zwei Arten von Schnüren, eine ist in einer einzigen Beschichtung und die andere in einer doppelten Beschichtung eingeschlossen. Single ist, wenn Sie nicht mit dem Inhalt herumspielen, und Double ist, wenn Sie herumspielen. Wir werden das später sehen.
Schließen Sie es zunächst in ein einzelnes ein
puts 'hello world'
Lass es uns versuchen.
> mkdir codes
> cd codes
> emacs puts_hello_world.rb
Öffnen Sie Emacs als und geben Sie Code ein. Speichern mit c-x c-s, Pause mit c-z,
> ruby puts_hello_world.rb
Bitte laufen Sie als. gerührt?
puts 'hello world'
Bitte versuchen Sie p und drucken. Beobachten Sie den Unterschied, fügen Sie einen Kommentar mit # hinzu und schreiben Sie ihn in p \ _print \ _ hello \ _world.rb.
# start here for p and pp
p
pp
> ruby hello_name.rb Rudy
Als ich eingetippt habe
Hello Rudy.
Schreiben Sie den zurückgegebenen Code.
Wenn Sie setzen, wird es normalerweise erhalten, aber in der Shell-Umgebung, die einer der Zwecke ist, wird ARGV [0] verwendet, um mit der Befehlszeilenschnittstelle zu arbeiten.
puts ARGV[0]
Und geben Sie hallo \ _name.rb ein
> ruby hello_name.rb Rudy
Bitte. Wie wäre es, ist der Name Ihres Hundes herausgekommen?
puts ARGV[0]
ARGV [0] bedeutet das 0te des Argumentarrays. In der Unix-Shell ist es normal, ein Argument wie die Option direkt an den Befehl zu übergeben. Aus diesem Grund wird ARGV normalerweise vorbereitet.
Denken Sie als nächstes darüber nach, "Hallo Rudy" zu machen. Es gibt verschiedene Möglichkeiten, dies zu tun. Bitte versuchen Sie dies auch.
puts | puts "Hello " + ARGV[0] |
---|---|
puts | puts "Hello #{ARGV[0]}" |
print "Hello #{ARGV[0]}\n" | |
print "Hello " + ARGV[0] + "\n" |
Für diejenigen von C gibt es auch printf.
printf("Hello %s.\n", ARGV[0])
Aber sobald Sie sich daran gewöhnt haben, werden Sie es nicht mehr verwenden, weil es redundant ist. Sie verwenden es wahrscheinlich nur, wenn Sie dasselbe Ausgabeformat für numerische Berechnungen verwenden möchten.
Lassen Sie es zuerst funktionieren.
> ruby hello_name.rb Rudy
Rudy
Kommst du zurück Ändere das.
> ps
Überprüfen Sie jetzt den Status von Emacs und starten Sie ihn mit fg oder emacs hell \ _name.rb.
puts "Hello #{ARGV[0]}"
Wird in diesen Situationen häufig verwendet. Machst du es richtig
Als nächstes sollten Sie "Hallo Rudy" irgendwo speichern.
ruby hello_name.rb bob > hello_name.txt
Bitte geben Sie eine Begrüßung in hallo \ _name.txt an sich aus. Rubin
Hello bob.
Oder so. '>' Ist eine Shell-Funktion, die das Ausgabeziel auf den angegebenen txt umleitet.
cat hello_name.txt
Sie können den Inhalt mit cat (con-cat-inate).