Saya sering menginginkan ini. Ketika saya menggunakan csh (dan tcsh), saya memiliki ungkapan:
!:88*:p
Idiom ini menyisipkan "kata 88 hingga kata terakhir" dari perintah sebelumnya pada titik di mana Anda mengetik pada baris perintah saat ini, yang biasanya merupakan akhir. Dalam csh, itu bukan kesalahan untuk ungkapan seperti itu untuk tidak menghasilkan kata-kata. Artinya, tidak perlu ada kata 88, tidak ada yang mengikutinya. Jika tidak ada kata 88, ini tidak menambahkan kata ke akhir perintah yang sedang diketik, dan kemudian mendorong baris perintah yang dihasilkan ke dalam sejarah tanpa eksekusi.
Seperti yang mungkin Anda ketahui,
*! (seperti !! dan! -1) adalah perintah sebelumnya;
*: 88 adalah kata 88 (kata pertama - biasanya perintah - adalah nol) dan csh akan membutuhkan kata demikian, tetapi ...
*: 88 * adalah semua kata yang dimulai dari kata 88, dan kemudian csh tidak tidak membutuhkan kata untuk ada;
*: p berarti mencetak, tetapi jangan mengeksekusi baris perintah.
Dengan atau tanpa: p, baris perintah ditambahkan ke histori perintah.
"Kenapa 88?" kamu bertanya-tanya Karena itu adalah kunci yang sama dengan * yang saya perlukan. Jika Anda memiliki perintah selama itu, mungkin!: 888 *: p adalah yang Anda butuhkan. Maaf ini tidak bekerja dengan bash AFAIK. Bash hanya akan mengatakannya
bash: :88*: bad word specifier
Fakta menyenangkan: perintah Anda biasanya tidak perlu menjadi yang pertama.
> /tmp/foo echo My command is word 3
valid dalam bash dan csh.