Я часто хотів цього. Коли я використовував csh (і tcsh), у мене була ідіома:
!:88*:p
Ця ідіома вставляє "слово 88 через останнє слово" попередньої команди в точку, де ви набираєте поточний командний рядок, який, як правило, є кінцевим. У csh, помилка для такого виразу не створює жодних слів. Тобто, не повинно бути ні слова 88, ні будь-якого, що слідує за ним. Якщо немає слова 88, це додає жодних слів до кінця введеної команди, а потім виштовхує отриманий командний рядок в історію без виконання.
Як ви, напевно, знаєте,
*! (як !! і! -1) - попередня команда;
*: 88 - це слово 88 (перше слово - зазвичай команда - дорівнює нулю), і csh вимагає такого слова, але ...
*: 88 * - це всі слова, що починаються зі слова 88, а потім csh робить не вимагати, щоб слово існувало;
*: p означає друк, але не виконувати командний рядок.
З або без: p, командний рядок додається до історії команд.
"Чому 88?" вам цікаво? Тому що це той самий ключ, що і * мені знадобиться. Якщо у вас є такі команди, можливо, це!: 888 *: p - це те, що вам потрібно. Вибачте, це не працює з баш AFAIK. Bash просто скаже
bash: :88*: bad word specifier
Веселий факт: зазвичай ваша команда не повинна бути першою.
> /tmp/foo echo My command is word 3
діє в bash та csh.