[РЕШЕНО] команда "`" (обратный апостроф). Для чего?

Автор kudascheff, 16 июня 2020, 16:00:15

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

kudascheff

после ввода в терминале команды "`"(обратный апостроф) исчезла строка приглашения, а вместо нее появился знак ">".
что это значит? для чего используется эта команда?
kudashev@dorn:~$ `
>
>
>


endru

Это еще тянется со времен мелких мониторов. когда нужно ввести команду которая не влазит в экран.

kudascheff

#2
Цитата: endru от 16 июня 2020, 17:28:57Это еще тянется со времен мелких мониторов.

хорошо. редкая, не используемая в современных компьютерах команда. а что означает символ ">" в начале строки?

endru

\n - перевод каретки, новую строку.

mcherenkov

Цитировать
после ввода в терминале команды "`"(гравис) исчезла строка приглашения, а вместо нее появился знак ">".
что это значит?
Этим приглашением ($PS2 (man bash)) bash предлагает завершить команду, начатую указанным Вами знаком (но не наконченную другим обратным апострофом).

Цитировать
для чего используется эта команда?
Команда "обратные апострофы" (``) возвращает результат выполнения того, что заключено между ними.
Для тех же целей можно применять башизм "$()" (кстати работает даже в двойных кавычках). Причём в случае "$()" можно делать вложенные конструкции. Однако если скрипт должен работать не только в баше, придётся всё же для совместимости с sh использовать обратные апострофы.


$ `
> cat`
pwd
/home/user
$ echo $PS2
>
$ PS2=_
$ `
_echo id
_`
uid=1000(user) gid=1000(user) группы=1000(user),24(cdrom),25(floppy)...
$ echo "Сейчас $(date +%F_%T). А зовут меня `whoami`."
Сейчас 2020-06-17_18:46:02. А зовут меня user.
$

kudascheff

#5
Цитата: mcherenkov от 17 июня 2020, 18:50:23bash предлагает завершить команду
получается символ ">" это значение переменной $PS2 и она используется вместо $PS1 для отображения строки приглашения,
а обратный апостроф - это своего рода пайп "|",
Цитата: mcherenkov от 17 июня 2020, 18:50:23возвращает результат выполнения того, что заключено между ними
при этом сначала всегда будет выполняться команда (или последовательность команд, начиная с последней) заключенная в обратные апострофы, а ее результаты будут представлленны в качестве аргументов.