GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was ist der Zweck von cd ` (Backtick)?

Was Sie eingegeben haben, ist ein Backtick - es ist der Beginn einer Anweisung, die Sie bashen müssen, um auszuwerten, was Sie als Befehl eingeben. Der > wird angezeigt, um anzuzeigen, dass Sie den Befehl noch in der nächsten Zeile eingeben.

Wenn Sie das Backtick schließen, werden Sie feststellen, dass der gesamte Befehl ausgeführt wird. Z. B.

~$ cd `
> echo /var`
/var$

Die Antwort von JohnC erklärt bereits den Backtick. Aber worüber Sie sich auch wundern, ist die > prompt. Dies ist eine Fortsetzungsaufforderung und wird nicht nur durch ein Backtick ausgelöst, sondern immer wenn Ihre Shell eindeutig weiß, dass Sie mit der Eingabe eines Befehls noch nicht fertig sind. Das einfachste Beispiel ist das Setzen einer expliziten Zeilenfortsetzung \ am Ende einer Eingabezeile (was beim Aufteilen langer Eingaben hilft):

$ echo \
> hallo

Beachten Sie das genauso wie PS1 steuert das Aussehen der Eingabeaufforderung, Sie können auch PS2 festlegen um die Fortsetzungsaufforderung zu ändern, z. B.

$ export PS2="(cont.) "
$ echo \
(cont.) hallo

Es gibt viele Gründe für die Fortsetzung. Ein einzelner Backtick ist unvollständig, aber Sie könnten auch so etwas wie

eingeben
ls -l `which cp`

in einer einzigen Zeile (Randbemerkung:Es wird empfohlen, $( zu verwenden und ) Stattdessen machen die Klammern deutlich, wo die Erweiterung beginnt und endet, während einzelne Backticks es schwieriger machen, zu sehen, wo etwas fehlt. Und nisten...). Andere mögliche Gründe für eine Fortsetzungsaufforderung:

  • ein fehlender done nach while oder for
  • eine fehlende fi nach einem if
  • ein fehlender esac nach case
  • eine fehlende schließende Klammer, z.B. in Subshells (cd $HOME; cat .bashrc)
  • ein fehlender Befehl nach dem Piping von | sowie bedingte Ausführung || und && (nicht & da das den Befehl nur im Hintergrund laufen lässt)
  • ein fehlendes schließendes Anführungszeichen (' oder " )

Seltsamerweise eine fehlende Klammer } nach einer Variablenerweiterung ${ verursacht auch eine Fortsetzungsaufforderung, wird aber aufgrund des eingefügten Leerzeichens fehlschlagen:

$ echo ${
> PS2}
bash: ${
PS2}: bad substitution

Das bedeutet, dass Ihr Befehl noch nicht abgeschlossen ist. Tatsächlich das Zeichen Backtick, ` , wird verwendet, um einen Inline-Befehl abzugrenzen.

Beispiel:

cd /tmp # Go to /tmp
pwd # Prints the current working  directory
ls `pwd` # Lists the content of the current working directory

Linux
  1. Was ist der Zweck von utmp-, wtmp- und btmp-Dateien in Linux

  2. Was ist der Zweck der Gruppe „Wheel“ in Linux?

  3. Was ist der Zweck der .bashrc-Datei in Linux

  4. Was soll der export-Befehl unter Linux bewirken?

  5. Was macht das -e in einem Bash-Shebang?

Was ist der Linux-Überwachungsbefehl + Beispiele

Der Zweck des Befehls „install“?

Der Zweck des Hash-Befehls?

Useradd vs. Adduser:Was ist der Unterschied?

Was ist der Kill-Befehl in Linux?

useradd vs. adduser:Was sind die Unterschiede?