Я часто хотел этого. Когда я использовал csh (и tcsh), у меня была идиома:
!:88*:p
Эта идиома вставляет «слово 88 через последнее слово» предыдущей команды в точку, где вы набираете текущую командную строку, что обычно является концом. В csh это не ошибка для такого выражения, чтобы не создавать слов. То есть не должно быть ни слова 88, ни следующего за ним. Если нет слова 88, это не добавляет слов в конец набираемой команды, а затем помещает полученную командную строку в историю без выполнения.
Как вы, наверное, знаете,
*! (как !! и! -1) - предыдущая команда;
*: 88 - это слово 88 (первое слово - обычно это команда - ноль), и csh потребует, чтобы такое слово существовало, но ...
*: 88 * - это все слова, начинающиеся со слова 88, а затем csh делает не требовать слово для существования;
*: p означает печать, но не выполняет командную строку.
С или без: p, командная строка добавляется в историю команд.
"Почему 88?" Вы задаетесь вопросом? Потому что это тот же ключ, что и * мне понадобится. Если у вас есть такие длинные команды, возможно!: 888 *: p - это то, что вам нужно. Извините, это не работает с bash AFAIK. Баш просто скажет
bash: :88*: bad word specifier
Интересный факт: ваша команда обычно не должна быть первой.
> /tmp/foo echo My command is word 3
действует в bash и csh.