ব্যাশে পূর্ববর্তী কমান্ড থেকে আমি কীভাবে একটি নির্দিষ্ট যুক্তি পেতে পারি?


31

ব্যাশে, আপনি !*পূর্ববর্তী কমান্ড থেকে সমস্ত আর্গুমেন্ট পেতে ব্যবহার করতে পারেন । উদাহরণস্বরূপ, আপনি যদি করেন cp /some/path /some/other/pathএবং তারপর করেন mv !*তবে দ্বিতীয় কমান্ডটি প্রসারিত হবে mv /some/path /some/other/path

এর মতো কি এমন কোনও কিছু রয়েছে যা তাদের সমস্তের পরিবর্তে একটি আদেশ থেকে একটি নির্দিষ্ট যুক্তি অ্যাক্সেস করতে ব্যবহার করা যেতে পারে?

উত্তর:


38

ইন !*, !হয় ইতিহাস সম্প্রসারণ প্রেফিক্স ও *হয় শব্দ designator মানে সব আর্গুমেন্ট। আপনি ব্যাং-লাইন-কোলন-কলাম ( !লাইন :কলাম) হিসাবে সাধারণ বাক্য গঠন মুখস্থ করতে পারেন । অনেকগুলি শর্টকাট রয়েছে: ডিফল্ট লাইনটি পূর্ববর্তী লাইন, ডিফল্ট কলাম নির্দিষ্টকরণকারীটি "সমস্ত" হয় এবং কলাম স্পেসিফায়ারটি যদি অ-সংখ্যাযুক্ত হয় তবে আপনি কোলনটি ছেড়ে দিতে পারেন (তবে এর !3অর্থ লাইন 3 হবে)। আপনি ব্যবহার করতে পারেন !:0কমান্ড নাম উল্লেখ করতে, !:1, !:2, ইত্যাদি ধারাবাহিক আর্গুমেন্ট উল্লেখ করতে, !:$শেষ কথা জন্য, !:*সব আর্গুমেন্ট জন্য, এবং আরো।

ইউনিক্স স্ট্যাক এক্সচেঞ্জে মাইকেল মরোজেকের এই পোস্টটিও দেখুন ।


1
আমি নিজে চেষ্টা করেছিলাম এবং এটি কার্যকর হয়নি। Michale Mrozek পোস্ট দিকে তাকিয়ে পর এটি ব্যবহার করতে বলে !:1, !:2। কলোনগুলির সাথে সংস্করণটি ব্যবহার করার পরে, এটি কাজ করেছিল।
ওফার্স

@ মিআরমন: ওফস, ঠিক আছে, যদি আপনি কোনও সংখ্যা দিয়ে কোলন ছেড়ে চলে যান, সংখ্যাটি একটি লাইন নম্বর হিসাবে ব্যাখ্যা করা হবে। এর জন্যে দুঃখিত.
গিলস 'খারাপ হয়ে যাওয়া বন্ধ করুন'

সমস্যা নেই. সুতরাং, তাহলে আমি ধরে নিই যে করণাটি !1:1প্রথম লাইনের প্রথম যুক্তিকে নির্দেশ করবে?
ওফার্স

4

ব্যক্তিগতভাবে, আমি এই "বিস্ময়বোধক চিহ্ন সহ সম্প্রসারণ" বৈশিষ্ট্যটি সত্যিই অপছন্দ করি যা echo "Hello World!"আপনি ইন্টারেক্টিভ শেলগুলি ব্যবহার করে চেষ্টা করলে এমনকি বিঘ্নিত হবে (এমন সোর্সিং স্ক্রিপ্টগুলি যেগুলি অনুমান করে যে এটি অ-ইন্টারেক্টিভ মোডে চালানো হবে তা মোটেই কাজ করবে না)।

সুতরাং, আমি set +o histexpandনিম্নলিখিত পদ্ধতির সাথে যুক্তিগুলি পুনরায় সেট করা এবং পুনরায় কল করা শুরু করি :

Esc, 1, Esc, Ctrl-Y => Insert first argument of previous command.

নোট করুন যে ইস্ক ট্রিকটি কারণ আমার কাছে কোনও মেটা কী নেই।


আমি প্রায় কখনও কমান্ডগুলিতে বিস্ময়বোধক পয়েন্ট ব্যবহার করি না। সুতরাং বিস্মৃত বিবরণ পদ্ধতিটি আমার পক্ষে নিখুঁতভাবে কাজ করে।
ওফার্স 17:51

তারপরে এটি উপভোগ করুন। আপনার শেলের অসংখ্য বৈশিষ্ট্য কেবল কয়েকটি ব্যবহারকারীর জন্য ডিজাইন করা হয়েছে।
বেনোইট

আসলে, আপনাকে বিস্ময়বোধক পয়েন্টগুলি এড়াতে হবে না। কি echo 'Hello, orld!'। একক উদ্ধৃতিগুলি দ্বিগুণের পরিবর্তে নোট করুন।
ওয়াফার্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.