Ви також можете використовувати розширення історії для позначення слів у поточному командному рядку:
convert -trim -density 400 this_is_a_very_long_filename_of_my_pdf_file.pdf !#:$:r.png
- Позначення подій
!#
посилається на набраний до цього часу командний рядок
- Словознавець
$
вказує останнє слово (перед розширенням)
- Модифікатор
r
видаляє розширення файлу. Це також позначає кінець тексту, який замінюється, коли відбувається розширення історії.
.png
є новим розширенням. Це не належить до самого розширення.
Коли цей рядок запущений, !#:$:r
замінюється назвою вашого pdf-файла за вирахуванням розширення, створюючи команду з питання:
convert -trim -density 400 this_is_a_very_long_filename_of_my_pdf_file.pdf this_is_a_very_long_filename_of_my_pdf_file.png
Потім цей рядок виконується безпосередньо.
Якщо ви хочете перевірити команду після розширення історії, перед її виконанням використовуйте
setopt histverify
Це перезавантажить розширений рядок у буфер редагування замість його виконання.
Примітка. На відміну від будь-якого іншого розширення, розширення історії виконується до того, як команда буде збережена в історію. Так echo !#
з'являться як echo echo
і не як echo !#
у вашому $HISTFILE
.