Что означает синтаксис "! $" При открытии файлов в Unix? - PullRequest
1 голос
/ 11 марта 2012

Вот пример кода:

user$ touch file.txt
user$ mate !$

"mate" вызывает текстовый редактор textmate, и эта вторая команда открывает ранее созданный файл file.txt. что это за синтаксис! $? что значит ! делать? что делает $?

Ответы [ 3 ]

2 голосов
/ 11 марта 2012

Это функция оболочки, которая вызывается при расширении или замене истории различных оболочек.

Слова, начинающиеся с восклицательного знака, заменяются словами из ранее выполненных команд.Какие слова и какие команды, это зависит от остальной части слова.

В этом конкретном примере знак доллара относится к последнему слову команды, и, поскольку между '!' Нет другого символаи '$' указанная команда является предыдущей, поэтому! $ заменяется последним аргументом команды prevoius.

Какие другие спецификаторы команды и слова несколько различаются между оболочками.

2 голосов
/ 11 марта 2012

!$ в оболочке Bash относится к последнему слову в предыдущей команде, здесь file.txt.

$, заимствованное из регулярного выражения и ed / viСинтаксис команды означает «последний».

0 голосов
/ 11 марта 2012

Вы найдете это в документации к вашей оболочке.

К сожалению, документация оболочки обычно не показывает символы ! и $ вместе, что делает поиск !$ излишне трудным. (! вводит подстановку истории; $ изменяет ее, заставляя ссылаться только на последнее слово.)

Для tcsh, man tcsh или посетите эту страницу и найдите «Подстановка истории».

Для bash, man bash и поиска «ИСТОРИЯ РАСШИРЕНИЯ», или info bash, или посетите руководство по bash , в частности, разделы по расширению истории и событию десигнаторами .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...