টি এল; ডিআর: alias @@='$($(fc -ln -1) |& tail -1)'
বাশের ইতিহাসের ইন্টারঅ্যাকশন সুবিধাগুলি কমান্ডের আউটপুট পরীক্ষা করার জন্য কোনও প্রক্রিয়া সরবরাহ করে না। শেলটি এটি সংরক্ষণ করে না এবং ইতিহাসের সম্প্রসারণটি বিশেষত আপনার নিজের দ্বারা চালিত কমান্ডগুলির জন্য বা সেই আদেশগুলির কিছু অংশ parts
এটি শেষ কমান্ডটি পুনরায় চালিত করার এবং stdout এবং stderr ( |&) উভয়কে একটি কমান্ড প্রতিস্থাপনে পাইপিংয়ের পদ্ধতিকে ছেড়ে দেয় । হিমাইলের উত্তর এটি অর্জন করে, তবে একটি উপাধিতে ব্যবহার করা যাবে না কারণ শেলটি আলিয়াস প্রসারিত করার আগে ইতিহাসের সম্প্রসারণ সম্পাদন করে, পরে নয়।
শেল ফাংশনে কাজ করার জন্য আমি ইতিহাসের প্রসারণ পেতে পারি না, এমনকি এটির সাথে ফাংশনে সক্ষম করেও set -H। আমি !!কোনও ফাংশনে সন্দেহ করি যে কখনই প্রসারিত হবে না এবং আমি নিশ্চিত নই যে এটি হলে কী প্রসারিত হবে, তবে এখনই আমি নিশ্চিত না কেন এটি হয়নি।
অতএব, যদি আপনি জিনিসগুলি সেট আপ করতে চান যাতে আপনি খুব কম টাইপ করে এটি করতে পারেন তবে ইতিহাস থেকে শেষ কমান্ডটি বের করার জন্য আপনার ইতিহাসের প্রসারণের পরিবর্তে fcশেল বিল্টিন ব্যবহার করা উচিত । ইতিহাসের সম্প্রসারণ অক্ষম করা অবস্থায়ও এটির অতিরিক্ত সুবিধা রয়েছে যা এটি কার্যকর করে।
দেখানো হিসাবে গর্ডন Davisson এর উত্তর থেকে উপনাম ব্যাশ ইতিহাস সম্প্রসারণ ধারণকারী তৈরি করা হচ্ছে (চালু সুপার ইউজার ), $(fc -ln -1)অনুকরণ করে !!। এই প্লাগিং !!মধ্যে heemayl হুকুম $(!! |& tail -1) উৎপাদনের:
$($(fc -ln -1) |& tail -1)
এটি এর মতো কাজ করে $(!! |& tail -1)তবে একটি উপন্যাস সংজ্ঞাতে যেতে পারে:
alias @@='$($(fc -ln -1) |& tail -1)'
আপনি যে সংজ্ঞা চালান, বা এটা করা পরে .bash_aliasesবা .bashrcএবং একটি নতুন শেল শুরু, আপনি কেবল টাইপ করতে পারেন @@গত কমান্ডের ফলাফল শেষ লাইন চালানো প্রচেষ্টা (অথবা আপনি যা ওরফে নামে)।
ek@Io:~$ alias @@='$($(fc -ln -1) |& tail -1)'
ek@Io:~$ evolution
The program 'evolution' is currently not installed. You can install it by typing:
sudo apt-get install evolution
ek@Io:~$ @@
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
evolution-common evolution-data-server evolution-data-server-online-accounts
....