আপনি যেভাবে কোনও উপনাম সেট করবেন ঠিক সেভাবেই আপনি এটি করুন।
alias git-go='git commit -m "init "; git push; git status'
অবস্থা যেখানে এটি চতুর পায় না যখন উপনাম কমান্ড সঞ্চালিত এবং যে কমান্ড আর্গুমেন্ট পাস, না উপনাম দ্বারা পৃথক একাধিক কমান্ড সঞ্চালিত এমনকি যখন ;
, কিন্তু এর পরিবর্তে যখন আপনি গ্রহণ এবং তার নিজস্ব কমান্ড লাইন আর্গুমেন্ট ব্যবহার করার জন্য একটি ওরফে চান ।
উদাহরণস্বরূপ, আপনি যে উপনামটির নামের পরে যা কিছু লিখবেন তা শেষের দিকে আটকানো হবে এবং git
এরপরে কমান্ড-লাইন আর্গুমেন্ট হিসাবে তৃতীয় আদেশে প্রেরণ করা হবে git status
। (সত্যিই এটি এতোটুকু নয় যে নীচের পাঠ্যটি শেষের দিকে আটকে দেওয়া হয়েছে, এটি যতটা নীচে থাকে তবে নীচের পাঠ্যটি একা থাকে এবং উর্ধের নামটির সংজ্ঞা দিয়ে প্রতিস্থাপন করা হয়))
সুতরাং আপনি কোনও যুক্তি ছাড়াই আপনার নামটি চালাতে পারেন যা কার্যকর হয় এবং শেষ আদেশটি হ'ল git status
:
git-go
অথবা আপনি এটিকে যুক্তি দিয়ে চালাতে পারেন যা আপনি পাস করতে চান git status
। উদাহরণস্বরূপ, আপনি যখন এটি এভাবে চালান, শেষ আদেশটি হ'ল git-status --show-stash
:
git-go --show-stash
আপনি বাশ (এবং অন্যান্য বোর্ন-স্টাইলের শেলস) -এর সাথে যে উপকরণটি করতে পারবেন না তা হ'ল উপনামটি কমান্ড-লাইন আর্গুমেন্ট গ্রহণ করে এবং এটিকে শেষের চেয়ে অন্য কোথাও স্থাপন করে।
উদাহরণস্বরূপ, ধরুন আপনি git-go
কোনও যুক্তি গ্রহণ করতে চেয়েছিলেন যা এটি প্রতিশ্রুতি বার্তার জন্য ব্যবহার করে। আপনি এটি একটি উপনাম হিসাবে লিখতে সক্ষম হবেন না। সমাধানটি হ'ল পরিবর্তে এটি শেল ফাংশন হিসাবে লিখতে হবে:
git-go() { git commit -m "$1"; git push; git status; }
একটি শেল ফাংশন সংজ্ঞা সালে অবস্থানগত পরামিতি $1
, $2
, এবং তাই ঘোষণা কমান্ড লাইন আর্গুমেন্ট শেল ফাংশন প্রেরণ মান ধরে রাখুন। এলিয়াসগুলির সাথে এটির সাথে সম্পর্কিত কোনও কার্যকারিতা নেই, কারণ শেল একটি কমান্ডকে বিশ্লেষণ করে যখন খুব শীঘ্রই ঘটেছিল তখন ওরফে প্রসারণটি ম্যাক্রো প্রসেসিংয়ের একটি রূপ।
আপনি অবশ্যই অবশ্যই এটি শেল ফাংশন হিসাবে লিখতে পারেন এমনকি আপনার ভিডিয়োনাথের পরামর্শ অনুসারে সংজ্ঞাতে অবস্থানগত পরামিতি ব্যবহার করার প্রয়োজন নেই ।