Ответы:
Вы можете использовать $_
или, !$
чтобы вспомнить последний аргумент предыдущей команды.
Также Alt + .
может использоваться для вызова последнего аргумента любой из предыдущих команд.
!!:1
, !!:2
и т.д. ( !!:0
сам предыдущую команду.) См gnu.org/software/bash/manual/bashref.html#History-Interaction
!$
, вы используете !^
для первого аргумента.
echo tiger rabbit
, как я могу сослаться tiger
на следующую команду?
Alt + .
не работает в режиме vi. Просто к вашему сведению, для тех, кто был смущен здесь.
Если предыдущая команда имела два аргумента, как это
ls a.txt b.txt
и вы хотели первый, вы могли бы напечатать
!:1
дающий
a.txt
Или, если вы хотели оба, вы могли бы напечатать
!:1-2
дающий
a.txt b.txt
Вы можете расширить это на любое количество аргументов, например:
!:10-12
-bash: :1-2: bad word specifier
ls a.txt
Строка 2ll !:1-2
!:^-$
можно использовать или, конечно, аналогичный код в сочетании с числами.
!!:n
где n
позиция 0 аргумента, который вы хотите.
Например:
echo 'one' 'two'
# "one two"
echo !!:2
# "two"
!
Префикс используется для доступа предыдущих команд.
Другие полезные команды:
!$
- последний аргумент из предыдущей команды!^
- первый аргумент (после программы / встроенного / скрипта) из предыдущей команды!!
- предыдущая команда (часто произносится как "bang bang")!n
- номер команды n
отhistory
!pattern
- самое последнее совпадение команд pattern
!!:s/find/replace
- последняя команда, заменить find
наreplace
!!:s/find/replace
, вы также можете ^find^replace
.
!*
- все аргументы из предыдущей команды (после программы / встроенного / скрипта). Например: ls *.tmp *.cache rm !*
В командной строке вы можете нажать esc- .или alt+.
Он перебирает последний аргумент ваших предыдущих команд.
↑
и ↓
ключи к работе , а также.
Если вам известно число, указанное в истории для конкретной команды, вы можете в значительной степени принять любой аргумент в этой команде, используя следующие термины.
Используйте следующий, чтобы получить второй аргумент из третьей команды в истории,
!3:2
Используйте следующий, чтобы взять третий аргумент из пятой последней команды в истории,
!-5:3
Используя знак минус, вы просите его перейти от последней команды в истории.
! * запускает новую команду со всеми предыдущими аргументами.
ls /tmp
cd !*
#you are now in /tmp
$_
вместо этого.
Да, вы можете использовать !$
для вызова последнего аргумента предыдущей команды.