আমি কীভাবে বাশ ওরফে একটি রেজেক্সকে সংযুক্ত করতে পারি?


1

আমি কীভাবে এমন একটি উপাধি তৈরি করব যা কোনও প্রদত্ত প্রকল্প ডিরেক্টরিতে চলে যাবে me

আমি আমার সমস্ত প্রকল্পগুলি প্রকল্পসমূহ নামে একটি ফোল্ডারে রাখি ~/Project/blog ~/Project/whatever

আমি তার লাইন বরাবর একটি উপনাম রাখতে চাই যা দেওয়া হয় তা যেখানে আছে p whateverতার সমান হবে ।cd ~/Project/$1$1p

alias p="cd ~/Projects/\$1"রেগেক্স পালানোর জন্য আমি সমস্ত সাধারণ সন্দেহভাজনদের সাথে বিভিন্ন সংযোগের চেষ্টা করেছি তবে আমি এটি যথেষ্টভাবে পেতে পারি না।

কোন ধারনা?

উত্তর:


3

আপনি উপাধিতে স্থিতি যুক্তি ব্যবহার করতে পারবেন না। পরিবর্তে একটি ফাংশন ব্যবহার করুন।

p() {
  cd ~/Projects/"$1"
}

সম্পূর্ণরূপে কাজ করে তবে অবশ্যই এটি প্রকল্পের নামটি স্বয়ংক্রিয়ভাবে পূর্ণ করবে না। আমি অনুমান করছি কারণ এটি একটি ফাংশন এবং অন্তর্নিহিত ডিরেক্টরি কাঠামো সম্পর্কে জানেন না? এটিকে স্বতঃসম্পূর্ণ করার কোনও উপায় আছে কি?
রড্রিজেজ

আপনাকে বাশের প্রোগ্রামেবল পরিসমাপ্তি বৈশিষ্ট্যটি ব্যবহার করতে হবে। দেখুন প্রোগ্রামেবল সম্পূর্ণতা এর উপধারা READLINE বিভাগে bash(1)মানুষ পাতা।
ইগনাসিও ওয়াজকেজ-আব্রামগুলি

1

আপনি এটি যা খুঁজছিলেন হতে পারে: বাশ ইনলাইন ইনলাইন কীভাবে প্রসারিত করবেন?

সুতরাং একটি সহজ সমাধান শেল-প্রসারিত-লাইন কমান্ডটি ব্যবহার করা হবে

Alias ​​$ 1 ছাড়াই ওরফে সংজ্ঞা দিন

 $bash>alias p="cd ~/Projects/"
 $bash>p 

শুধু চাপুন Meta- Ctrl- eপেয়ে প্রসারিত করতে:

$bash>cd /home/USERNAME/Projects/

এই সমাধানটি প্রসারণের শেষে একটি বিশ্রী ফাঁকা স্থান রাখে যা অন্য কোনও কিছুBackSpace লেখার আগে আপনাকে মুছে ফেলতে হবে
ইগনাসিও ওয়াজকেজ-আব্রামগুলি স্বতঃসম্পূর্ণ বৈশিষ্ট্য (/ ইত্যাদি / বাশ_সম্পর্কের দিকে তাকানো) সহ একটি ফাংশন ব্যবহার করার জন্য আরও মার্জিত সমাধান ওলিউডের পরামর্শ দিয়েছিল

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