Ви також можете використовувати розширення історії для позначення слів у поточному командному рядку:
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.