বাশ-এ, শেষ কমান্ডের কিছু অংশ পুনরাবৃত্তি করতে কিছু হ্যান্ডি অপারেটর রয়েছে:
!^
পূর্ববর্তী কমান্ডের প্রথম যুক্তিতে প্রসারিত হয়, যেমন,$ echo one "two three" one two three $ echo !^ echo one one
!$
পূর্ববর্তী কমান্ডের শেষ আর্গুমেন্টে প্রসারিত হয়, যেমন,$ echo one "two three" one two three $ echo !$ echo "two three" two three
!*
পূর্ববর্তী কমান্ডের সমস্ত আর্গুমেন্টে প্রসারিত হয়, যেমন,$ echo one "two three" one two three $ echo !* echo one "two three" one two three
(যতদূর আমি বুঝতে, এই জন্য অন্বিত চিনি আছে !!:^
, !!:$
এবং !!:*
যথাক্রমে যেখানে !!
একটি ঘটনা designator যে পূর্ববর্তী কমান্ড বিস্তৃতি, এবং ^
, $
এবং *
শব্দ designators হয়, দেখতে ব্যাশ রেফারেন্স ম্যানুয়াল বা man bash
।)
এগুলি প্রায়শই বেশ কার্যকর। এটি কীবোর্ড শর্টকাটগুলির সাথে আরও শীতল হয়ে যায়:
আপনি যখন Alt+ .বা Alt+ টিপুন _, পূর্ববর্তী কমান্ডের সর্বশেষ যুক্তিটি বর্তমান কমান্ডটিতে সন্নিবেশ করা হয়, একইভাবে আপনি
!$
সেই বিন্দুতে লিখেছিলেন ।এছাড়া আঘাত করা সম্ভব Alt+ + Ctrl+ + y, পূর্ববর্তী কমান্ডের প্রথম আর্গুমেন্ট সন্নিবেশ করতে যেন আপনি লিখেছেন
!^
যে সময়ে।
( জিএনইউ রিডলাইন লাইব্রেরি দেখুন বা info readline
।)
আমি বাশের ইতিহাস অপারেটরগুলির চেয়ে কীবোর্ড শর্টকাটগুলিকে প্রাধান্য দিই কারণ আমি কমান্ডটি বাস্তবায়ন করার আগে আমি কী লিখছি তা দেখতে পাচ্ছি। যাইহোক, এমন একটি শর্টকাট বলে মনে হচ্ছে না যা আমাকে পূর্ববর্তী কমান্ডের সমস্ত শব্দ .োকাতে সক্ষম করে, যেমন একটি কাজ যা !*
কাজ করে। কমপক্ষে আমি এটি খুঁজে পেলাম না।
এমন শর্টকাট আছে? যদি তা না হয় তবে একটি যুক্ত করার জন্য পঠন পাঠাগারটি কনফিগার করা সম্ভব এবং কীভাবে?
zsh
, আপনি টাইপ করুন echo !*
এবং তারপরে ট্যাব টিপুন, আপনার পছন্দসই প্রভাব রয়েছে। সাধারণভাবে, পাঠ্যপুস্তক থাকাকালীন ট্যাব সমস্ত প্রসারণযোগ্য প্রসারিত করবে। খুব সহজ; সম্ভবত বাশ একই প্রভাব কিছু কনফিগারেশন আছে? @ শেঠ, আমি মনে করি এটি বাশের পাঠ্যলাইন, টার্মিনাল এমুলেটর নয় - তবে নিশ্চিত নয়।
man bash
(লাইন 3030 এ কোথাও)
\e.
এবং \e_
রিডলাইন ফাংশনে ম্যাপ করা হয় yank-last-arg
এবং এতে \e\C-y
ম্যাপ করা হয় yank-nth-arg
। দুঃখজনকভাবে এমন কোনও (একক) কমান্ড নেই যা একবারে একাধিক পূর্ববর্তী যুক্তি যুক্ত করে।