मुझे अक्सर यही चाहिए होता है। जब मैंने 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
बैश और csh में मान्य है।