echo foo bar foobar barfoo && echo !$ !^ !:3 !* && echo /usr/bin/foobar&& echo !$:h !$:t
1. Первая часть команды «echo foo bar foobar barfoo» выводит текст «foo bar foobar barfoo». Вторая часть «echo !$ !^ !:3 !*» выводит последний аргумент предыдущей команды «barfoo», первый аргумент предыдущей команды «foo», третий аргумент предыдущей команды «foobar» и все аргументы предыдущей команды «foo bar foobar barfoo».
2. Переменная !$ представляет последний аргумент предыдущей команды, !^ — первый аргумент предыдущей команды, !:3 — третий аргумент предыдущей команды, а !* — все аргументы предыдущей команды. Они могут быть полезны для повторного использования аргументов в новой команде, без необходимости повторного набора.
3. В команде «echo /usr/bin/foobar» !$:h выводит путь к каталогу последнего аргумента предыдущей команды «/usr/bin», а !$:t выводит только имя последнего аргумента «foobar». Это может быть полезно, когда нужно работать с путями к файлам и каталогам. Альтернативой может быть использование команды basename или dirname для получения имени файла или пути к каталогу соответственно.