Wie funktioniert" echo $0"?

Ich fand heraus, auf Fragen Ubuntu Ich kann diesen Befehl verwenden, um herauszufinden, was Shell ich bin in.

echo $0

Ich mag das, weil es einfach ist im Vergleich zu komplexeren Lösungen wie dieser auf dem Unix und Linux Stack Exchange.

Ich stelle mir vor, echo ist ähnlich wie print aber was ist das $0?

Schließlich möchte ich in der Lage sein, mehrere Registerkarten programmgesteuert zu öffnen, ähnlich wie hier auf Stack Overlow.

, Dass verwendet gnome-terminal aber ich benutze Bash.

Author: Sun - FE, 2019-06-06

1 answers

$0 ist ein spezieller parameter in der Bash...

...und andere [[11]}POSIX-standardkonforme Shells.

Wie in dieser Kommentar zu dieser Antwort erklärt, auf die Sie verlinken, echo $0 zeigt Ihnen einfach den Namen des aktuell laufenden Prozesses:

$0 ist der Name des laufenden Prozesses. Wenn Sie es innerhalb einer Shell verwenden, wird der Name der Shell zurückgegeben. Wenn Sie es innerhalb eines Skripts verwenden, ist dies der Name des Skripts.

{[14],} Mehr details finden Sie hier auf dieser anderen Seite:

$0 ist einer der speziellen Bash-Parameter . Es kann nur wie folgt referenziert werden (nur ein Beispiel, da es verschiedene Möglichkeiten gibt, $0 während der Skripterstellung zu referenzieren und zu verwenden).

Erstellen Sie also einfach ein Bash-Skript wie dieses. Öffnen Sie zuerst eine Datei zum Schreiben mit dem Namen test.sh mit Nano wie folgt:

nano test.sh

Dann legen Sie diese Inhalte in diese Datei:

#!/bin/bash
echo $0

Drücken, Dann Strg+X speichern Sie die Datei. Machen Sie das Skript nun wie folgt ausführbar:

chmod 700 test.sh 

Jetzt führe es so aus:

./test.sh

Und die Ausgabe wäre:

./test.sh

Also für die Zwecke, die Sie beschreiben echo $0 wird nicht wirklich funktionieren.

 7
Author: Giacomo1968,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-06-06 16:40:44