বাশ স্ক্রিপ্টগুলিতে ওরফে বনাম ফাংশন


11

আমি ব্যাশ শেলের এলিয়াস এবং ফাংশনগুলির মধ্যে পার্থক্য জানতে চাই - এবং কখন কোনটি ব্যবহার করব।

এটি সুস্পষ্ট বলে মনে হয় যেহেতু ফাংশনগুলি আর্গুমেন্ট নিতে পারে, সেগুলি অনেক বেশি শক্তিশালী - যেহেতু আমি মূলত একটি নেটবুক নিয়ে রাস্তায় কাজ করি এবং শক্তি এবং প্রক্রিয়াকরণ শক্তি সঞ্চয় করতে চাই, তাই আমি বিশেষত পারফরম্যান্সের পার্থক্য সম্পর্কে আরও কিছুটা জানতে চাই ব্যাশ কার্যকারিতা বাড়ানোর এই দুটি উপায়।


1
আত্ম-প্রতিপন্ন হওয়ার দরকার নেই। যদি আপনার প্রশ্নটি না চায় তবে এটি ডাউনভোট হবে। এবং যদি কেউ আপনার প্রশ্নটি পরিষ্কার করতে চায়, তবে তিনি একটি মন্তব্যে এটি বলবেন। এবং লোকেদের আপনার পোস্ট সম্পাদনা করতে নিষেধ করা বিন্দুটি হারিয়ে যাওয়ার মতো। এই সাইটটি প্রত্যেকের জন্য সম্পাদনাযোগ্য হওয়ার জন্য তৈরি করা হয়েছে।
k0pernikus

আমি নিষেধ করার চেষ্টা করছিলাম না, তবে দয়া করে দয়া করে আমাকে তারা প্রয়োজনীয় বিবেচনা করে স্পষ্ট করার সুযোগ দেওয়ার জন্য বলুন। আমি যে বিষয়গুলি সম্পর্কে খুব কম জানি সেগুলি সম্পর্কে খুব সাধারণ প্রশ্ন জিজ্ঞাসা করার অভিজ্ঞতা পেয়েছি এবং তারপরে লোকেরা মনে করেছিল যে এটি সম্পূর্ণ স্পষ্টতই আমি আরও জটিল কিছু সম্পর্কে জিজ্ঞাসা করছি এবং আমি কী চাই আমি কীভাবে জিজ্ঞাসা করতে পারি না সে সম্পর্কে আমাকে সংশোধন করে । অবশ্যই এই প্ল্যাটফর্মের দুর্দান্ত সুবিধাগুলির মধ্যে একটি হ'ল সত্য যে এটি সহকর্মীদের দ্বারা সম্পাদনযোগ্য, আমি এটি হ্রাস করার চেষ্টা করিনি। আপনার মতামতের জন্য ধন্যবাদ, আমাকে
ভাবিয়ে তোলে

এর সম্ভাব্য ক্রস সাইটের সদৃশ: unix.stackexchange.com/questions/30925/…
Ciro Santilli 病毒 病毒 审查 六四 事件

উত্তর:


10

উপাধি হিসাবে ডাকনাম হিসাবে চিন্তা করুন । আপনার একটি কমান্ড থাকতে পারে যা আপনি প্রচুর সম্পাদন করেন তবে সংক্ষিপ্ত করতে চান।

উদাহরণস্বরূপ, আপনি প্রায়শই কমান্ডলাইনে সরাসরি ডেস্কটপে যেতে চান, তাই আপনি এটি করতে পারেন

alias desktop="cd ~/Desktop"

তারপরে আপনি কেবল টাইপ করুন

desktop

টার্মিনাল এবং এটি আপনার cd ~/Desktopজন্য সঞ্চালন করবে ।

কার্যাদি যুক্তিযুক্ত থাকে। একটি ফাংশনে, আপনি বিভিন্ন বিভিন্ন প্রোগ্রামে কল করতে পারেন। এখানে একটি সহজ প্রতিধ্বনি ফাংশন

function e {
                echo $1 
                echo $1 $1
                echo $1 $1 $1                 
           }  

আপনি যখন এটি ডাকবেন তখন এটি কোনও উপামের মতো দেখাতে পারে

e Hello

আপনার ই () এর মাধ্যমে অনেকগুলি ভিন্ন ভিন্ন ঘটনা ঘটতে পারে। উপরোক্ত একটি সরল উদাহরণ।

উপকরণগুলি সাধারণ ব্যবহারের ক্ষেত্রে সংরক্ষণ করা উচিত। ব্যক্তিগত উদাহরণ - আমি আমার rmকমান্ডটি এভাবে প্রতিস্থাপন করেছি

alias rm='trash-put'

আমি যখনই কোনও আরএম করি, এটি ডিস্ক থেকে মুছে ফেলার পরিবর্তে এটি ট্র্যাসে প্রেরণ করবে। এটি টার্মিনালে আমার আনাড়ি পূরণ করে যেখানে আমি (কখনও কখনও) দুর্ঘটনাক্রমে একটি গুরুত্বপূর্ণ ফাইল মুছতে পারি।

ক্রিয়াকলাপ , আপনার মনে রাখতে হবে, এটি যুক্তির অংশ। আপনি সাধারণত কোনও ফাংশন স্বতন্ত্র ব্যবহার করবেন না। এটি বৃহত্তর স্ক্রিপ্টের অংশ হবে। এমন কোনও স্ক্রিপ্টের কল্পনা করুন যা আপনার সমস্ত ফাইল নিয়ে যায় এবং তাদের পিগ ল্যাটিন সংস্করণগুলিতে নাম পরিবর্তন করে। এটি করার বিভিন্ন উপায় রয়েছে তা উপেক্ষা করুন।

তবে আপনি যা করতে পারেন তা হ'ল ডিরেক্টরিটির প্রতিটি ফাইল লুপ করে ফাইলপথটি আপনার RenameAsPigLatin ফাংশনে পাস করুন। RenameAsPigLatin ফাংশনটিতে সংখ্যার সাথে যুক্ত থাকার ক্ষেত্রে অতিরিক্ত যুক্তি থাকতে পারে, যেখানে আপনি সিদ্ধান্ত নিয়েছেন যে সংখ্যার সাথে শেষ হওয়া ফাইলগুলির নাম পরিবর্তন করা উচিত নয়।

অবিলম্বে আপনি এটি একটি ফাংশন হিসাবে থাকার সুবিধা দেখতে পাবেন the ফাংশনটি আপনার অদ্ভুত নিয়মগুলির নাম পরিবর্তন করতে ফোকাস করতে পারে যখন স্ক্রিপ্টের বাকী অংশটি প্রয়োজনীয় হিসাবে বিভিন্ন ডিরেক্টরিকে অতিক্রম করতে পারে।


2
আমার মতে, ফাংশনগুলি স্বতন্ত্র ব্যবহার করার অনেক কারণ রয়েছে। প্রকৃতপক্ষে, আমার এলিয়াসগুলির সাথে সংজ্ঞায়িত আমার বেশ কয়েকটি ফাংশন রয়েছে। উদাহরণস্বরূপ, আমি সিডিকে একই নামের একটি ফাংশন দিয়ে প্রতিস্থাপন করেছি যাতে এটি কোনও কার্যকারিতা ত্যাগ না করে প্রতিটি সিডির পরে স্বয়ংক্রিয়ভাবে একটি এলএস করতে পারি। এটি একটি উপনাম দিয়ে করা যায় না কারণ এটির জন্য কিছুটা যুক্তি প্রয়োজন।
স্কট সিভেরেন্স

3

দীর্ঘ নাম কমান্ড টাইপ করা বা সর্বদা একই বিকল্পগুলির পুনরাবৃত্তি এড়াতে কনসোলটিতে একটি উপাধি একটি সাধারণ শর্টকাট ব্যবহৃত হয়।

একটি শাস্ত্রীয় উদাহরণ হ'ল:

alias ll='ls -l'

এলিয়াস কেবল একটি ইন্টারেক্টিভ কনসোলে কাজ করে, এগুলি স্ক্রিপ্টগুলিতে ব্যবহার করার উদ্দেশ্যে নয়।

স্ক্রিপ্ট বা কনসোলে ফাংশন ব্যবহার করা যেতে পারে তবে স্ক্রিপ্টগুলিতে বেশি ব্যবহৃত হয়।

উপস্বের বিপরীতে, যা কেবলমাত্র তাদের মান দ্বারা প্রতিস্থাপিত হয়েছে, কোনও ফাংশন ব্যাশ শেল দ্বারা ব্যাখ্যা করা হবে।

অ্যালিয়াসগুলির চেয়ে ফাংশন অনেক বেশি শক্তিশালী, এগুলি খুব জটিল প্রোগ্রামগুলি তৈরি করতে ব্যবহৃত হতে পারে।

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