В bash, как развернуть! $ При наборе командной строки? - PullRequest
1 голос
/ 08 февраля 2012

Есть ли способ развернуть !$ в командной строке при интерактивном редактировании команды внутри оболочки?

Например, когда я набираю ls !$, я нажимаю какую-то кнопку и затем вижу, чтоэто значение !$.

Ответы [ 3 ]

4 голосов
/ 08 февраля 2012

Вы можете просто использовать:

!$:p

Это напечатает последнее слово последней выполненной команды.

Или введите Ctrl-Alt-e , чтобы развернуть !$

Или введите ESC . , чтобы получить !$

4 голосов
/ 08 февраля 2012

Вы хотите, чтобы эта последовательность трактовалась буквально, без какого-либо расширения?Вы можете заключить его в кавычки: '!$'

ОБНОВЛЕНИЕ Если вы хотите расширить его перед выполнением, вы можете использовать Ctrl-Alt-E , но остерегайтесь того, чтоон также будет выполнять «раскрытие слова», поэтому !$ "single argument" будет расширен до expanded_string single argument (без кавычек => два аргумента).

Вы также можете использовать Alt -_ (работает как в режиме emacs, так и в режиме vi) или Alt -. (работает только в режиме emacs), чтобы просто вставить последний аргумент предыдущей команды напрямую, без какого-либо расширения.

1 голос
/ 21 февраля 2012

Вы набираете !$ и после этого нажимаете: Alt-^, и !$ немедленно расширяется.

Спасибо @ Alexis за его ответ на https://stackoverflow.com/q/9360013/813665, который раскрывает мне силу Alt-^.

...