GNU/Linux >> Znalost Linux >  >> Linux

Jaký je účel cd ` (backtick)?

To, co jste zadali, je zpětné zaškrtnutí - je to začátek instrukce pro bash, aby vyhodnotil, co napíšete jako příkaz. > se zobrazí , což znamená, že stále zadáváte příkaz na dalším řádku.

Pokud zavřete zaškrtávací políčko, zjistíte, že se spustí celý příkaz. Např.

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

JohnCova odpověď již vysvětluje zpětný tah. Ale co vás také zajímá, je > výzva. Toto je výzva k pokračování a nespouští se pouze zpětným zaškrtnutím, ale vždy když váš shell jasně ví, že jste neskončili se zadáním příkazu. Nejjednodušším příkladem je vložení explicitního pokračování řádku \ na konci vstupního řádku (což pomáhá rozdělit dlouhý vstup):

$ echo \
> hallo

Všimněte si, že stejně jako PS1 ovládá vzhled příkazového řádku, můžete také nastavit PS2 pro změnu výzvy k pokračování, např.

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

Existuje mnoho důvodů pro pokračování. Jedno zpětné zaškrtnutí je neúplné, ale můžete také zadat něco jako

ls -l `which cp`

v jednom řádku (postranní poznámka:Doporučuje se použít $( a ) místo toho, protože závorky dávají jasně najevo, kde expanze začíná a končí, zatímco jednotlivé zpětné značky znesnadňují zjištění, kde chybí. A hnízdění...). Další možné důvody pro výzvu k pokračování:

  • chybějící done po while nebo for
  • chybějící fi za if
  • chybějící esac po case
  • chybějící koncová závorka, např. v podsložkách (cd $HOME; cat .bashrc)
  • chybějící příkaz po propojení | stejně jako podmíněné spuštění || a && (nikoli & i když, protože to znamená, že příkaz běží na pozadí)
  • chybějící závěrečná uvozovka (' nebo " )

Je zvláštní, že chybí složená závorka } po rozšíření proměnné ${ také způsobí výzvu k pokračování, ale selže kvůli vložené mezerě:

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

Znamená to, že váš příkaz ještě není dokončen. Ve skutečnosti je to zpětné zaškrtnutí znaku ` , se používá k oddělování vloženého příkazu.

Příklad:

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

Linux
  1. Jaký je účel souborů utmp, wtmp a btmp v Linuxu

  2. Co je stromový příkaz v Ubuntu?

  3. Jaký je ekvivalent linuxového ~ (tilda) ve Windows?

  1. Co dělá -e v bash shebang?

  2. Jaký je smysl příkazu hostnamectl?

  3. Co je nástroj příkazového řádku reverzního DNS?

  1. Účel příkazu „install“?

  2. Účel hash příkazu?

  3. Jaký je účel uživatele „mysql.sys@localhost“.