Wenn ich beispielsweise ".bashrc" an meiner Linux-Eingabeaufforderung sage, gibt es ein entsprechendes Binär-/Skript, das anstelle des ersten Punkts ausgeführt wird? Wenn der Punkt selbst ein Befehl ist, wo ist seine Position?Was passiert, wenn ich ein Unix-Shell-Skript mit einem '.' Befehl?
Antwort
Der Operator .
ist eine Abkürzung für die source
Bash Built-in (wie von John Kugelman unten angegeben). Typing
help .
oder
help source
an der Bash-Eingabeaufforderung geben Ihnen einige Informationen. Weitere Informationen dazu, wie source
funktioniert, finden Sie unter http://www.ss64.com/bash/period.html.
+1 Schlüssel ist, dass es eine eingebaute Shell ist, keine separate Binärdatei. Sie können 'help' an einer Bash-Eingabeaufforderung eingeben, um alle anderen Builtins zu sehen. –
Zusätzlich möchte ich darauf hinweisen, dass Sie nichts damit "ausführen" (in Bezug auf fork/exec), was sehr wichtig ist (und wahrscheinlich der einzige Grund, dass '.' Existiert).
Ein wichtiger Punkt - eine Konsequenz des Punktbefehls, der nichts ausführt - besteht darin, dass wenn das Punktskript Variablen setzt, diese in der Shell gesetzt werden, die auf das Skript zeigt, nicht in einer Untershell. –
Ich glaube nicht, dass das 'gehört-auf-Serverfault'-Tag hier angebracht ist. Shell-Skripting ist ein gültiges Programmierthema. –
Wurde schon einige Male gefragt und beantwortet. Viel Glück, die Dups zu finden, obwohl ... – dmckee
Eines gefunden: http://StackOverflow.com/Questions/922651/Unix-Command-Line-Execute-with-Dot-VS-without – dmckee