আমি ব্যবহার করতে পারেন '!!' উপাধি বা স্ক্রিপ্টে?


10

টার্মিনালে আমি ব্যবহার করতে পারি !!যা আমার পূর্ববর্তী কমান্ডটি উল্লেখ করবে।
এটি কি কোনও উপनामে ব্যবহার করা সম্ভব? আমি এটি চেষ্টা করেছি, তবে যা ঘটে তা হ'ল ডাবল বিস্মরণ চিহ্নগুলি আক্ষরিক অর্থে ব্যাখ্যা করা হয়।

আমি যা করতে চাই তা হ'ল:

  1. আমি কিছু কমান্ড লিখছি
  2. আমি একটি উপনাম টাইপ করি যা এতে পদক্ষেপ 1 এ প্রবেশ করেছিল

স্ক্রিপ্ট ব্যবহার করে যদি কোনও সমাধান থাকে তবে তা গ্রহণযোগ্য।


আপনার মূল লক্ষ্য কি? শেষ আদেশে আরও বিকল্প যুক্ত করবেন?
সের্গেই কোলোডিয়াজনি

আমার লক্ষ্যটি আমি প্রায়শই ব্যবহার করি এমন একটি দীর্ঘ কমান্ড দ্রুত টাইপ করা নয় to এর মাঝখানে একটি দীর্ঘ স্ট্রিং যা প্রায়শই পূর্ববর্তী আদেশ হয়
লুডভিগ ম্যাগনুসন

মনে হচ্ছে আপনি কেবল fcকমান্ড চান তাই এটি একটি পাঠ্য সম্পাদক খুলবে, কারণ এটি দীর্ঘ কমান্ড সম্পাদনা করার সহজতম উপায়। আমাকে এটি আমার পোস্টে যুক্ত করুন। এছাড়াও, আপনি কমান্ড একটি উদাহরণ প্রদান করতে পারে?
সের্গেই কোলোডিয়াজনি

আমার পোস্টে একটি সম্পাদনা যুক্ত করা হয়েছে
সের্গি কলডিয়াজহনি

উত্তর:


11

সর্বশেষ নির্বাহিত কমান্ডের তালিকা প্রদর্শনকারী কমান্ডটি fc -nl -1। আউটপুট প্রতিস্থাপন ব্যবহার করে, আমরা একই সামগ্রীতে আরও পরামিতি যুক্ত করতে পারি

$> ls /etc/passwd
/etc/passwd
$> $(fc -nl -1)  /etc/group                                                     
/etc/group  /etc/passwd
$> 

উদ্ধৃতি, তবে এই পদ্ধতির সাথে সমস্যা হতে পারে

এর খুব সুন্দর বৈশিষ্ট্যটি fcহ'ল যদি আপনি fcনিজের দ্বারা কমান্ডটি চালান তবে এটি FCEDITভেরিয়েবলের মধ্যে নির্দিষ্ট পাঠ্য সম্পাদকটি খুলবে (যা আপনি সম্ভবত সংরক্ষণ করতে চান ~/.bashrc) এবং লাইনের বিষয়বস্তুগুলি আপনার শেষ কমান্ড হবে। আপনার স্বাচ্ছন্দ্যের জন্য, আমি আপনাকে nanoআপনার পাঠ্য সম্পাদক হিসাবে ব্যবহার করার পরামর্শ দিচ্ছি , তবে আপনি যদি জানেন vim - আরও ভাল।

উদাহরণস্বরূপ, যদি আমার qdbus org.ayatana.bamf /org/ayatana/bamf/matcher org.ayatana.bamf.matcher.ActiveWindowবিশাল লাইনটি সম্পাদনা করার দরকার হয় , তাই না? তবে এর সাহায্যে fcআমি খুলতে vimএবং সম্পাদনা করতে /org/ayatana/bamf/matcher, সংরক্ষণ করতে, প্রস্থান করতে এবং এটি চলতে পারে।


9

আপনি ব্যবহার করতে পারবেন না !!তবে ...

ম্যানুয়াল থেকে :

Fc কমান্ডের সাথে ব্যবহার করার জন্য একটি দরকারী নাম r='fc -s', যাতে 'r cc' টাইপ করা সিসি দিয়ে শেষ কমান্ডটি চালায় এবং 'r' টাইপ করে শেষ কমান্ডটি পুনরায় প্রয়োগ করে।


সুতরাং এটি আমার শেষ কমান্ডের শুরুতে কিছু যুক্ত করার অনুমতি দেবে। এর মাঝে কী হবে?
লুডভিগ ম্যাগনুসন

8

আপনি যদি ইতিমধ্যে উল্লিখিত ( !!পরিবর্তে fcউল্লিখিত) এর পরিবর্তে ইতিহাসের প্রসারণ সিনট্যাক্সটি ব্যবহার করার বিষয়ে জিদ করেন তবে একটি উপায় আছে।

ডিফল্টরূপে, historyস্ক্রিপ্টগুলিতে অ-ইন্টারেক্টিভ শেল সেশনের জন্য প্রসারণ অক্ষম করা হয়।

স্ক্রিপ্টগুলিতে ইতিহাসের প্রসারণ সক্ষম করতে প্রথমে প্রাসঙ্গিক শেল বিকল্পগুলি সক্ষম করুন:

set -o history 
set -o histexpand

set -o histexpandহিসাবে লেখা যেতে পারে set -H

এখন ইতিহাস সম্প্রসারণ অপারেশন যেমন !!স্ক্রিপ্টের অভ্যন্তরে কাজ করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.