মূলত, এটি পূর্ববর্তী কমান্ডের সর্বশেষ যুক্তি।
!$
পূর্ববর্তী কমান্ডের "শেষ"। নিম্নলিখিত উদাহরণটি বিবেচনা করুন: আমরা কোনও ফাইলে একটি শব্দ খুঁজতে শুরু করি:
grep -i joe /some/long/directory/structure/user-lists/list-15
জো যদি সেই ব্যবহারকারী তালিকায় থাকে তবে আমরা তাকে এটি থেকে সরাতে চাই। হয় হয় দীর্ঘক্ষণ ডিরেক্টরি গাছের সাথে আমরা যুক্তি হিসাবে আগুন জ্বালাতে পারি, বা vi !$
কোন ব্যাশটি প্রসারিত হয় ঠিক তেমন :
vi /some/long/directory/structure/user-lists/list-15
( উত্স ; উপায় গাইড,)
এই !$
টোকেন এবং বিশেষ শেল ভেরিয়েবলের মধ্যে পার্থক্য মূল্যহীন $_
। আসলে, উভয়ই পূর্ববর্তী কমান্ডের শেষ যুক্তিতে প্রসারিত হয়। যাইহোক, !$
সময় প্রসারিত হয় ইতিহাস সম্প্রসারণ , যখন $_
সময় প্রসারিত হয় প্যারামিটার সম্প্রসারণ । এর একটা গুরুত্বপূর্ণ ফল যে, যখন আপনি ব্যবহার করেন !$
, প্রসারিত কমান্ড আপনার ইতিহাসে সংরক্ষিত হয়।
উদাহরণস্বরূপ, কীস্ট্রোকগুলি বিবেচনা করুন
(পরিবর্তিত কেবলমাত্র অক্ষরগুলি হ'ল $!
এবং $_
মাঝখানে))
পূর্ববর্তী সময়ে, আপনি টিপলে Up, কমান্ড লাইনটি পড়ে echo Foo Jar
, সুতরাং stdout এ লেখা শেষ লাইনটি Foo Jar
।
পরবর্তীকালে, আপনি টিপলে Up, কমান্ড লাইনটি পড়ে echo $_ bar
, তবে এখন $_
আগের তুলনায় তার আলাদা মান রয়েছে — প্রকৃতপক্ষে, $_
এখন Jar
, তাই স্টাডআউটে লেখা শেষ লাইনটি Jar Jar
।
আরেকটি পরিণতি হ'ল _
অন্যান্য প্যারামিটার বিস্তৃতিতে ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ, কমান্ডের ক্রম
printf '%s ' isomorphism
printf '%s\n' ${_%morphism}sceles
কপি করে প্রিন্ট isomorphism isosceles
। তবে কোনও অনুমান " ${!$%morphism}
" প্রসার নেই।
বাশ-এ সম্প্রসারণের পর্যায়গুলি সম্পর্কে আরও তথ্যের জন্য EXPANSION
বিভাগটি দেখুন man 1 bash
( এটি অনলাইন সংস্করণে শেল প্রসারণ বলা হয় )। HISTORY EXPANSION
অধ্যায় পৃথক হয়।
echo
আপনি যদি নিশ্চিত হন না যে এটি কী করবে তা সাধারণত চেষ্টা করার চেষ্টা করা নিরাপদ ।