সাধারণ কমান্ডগুলির জন্য ওরফে বনাম রফতানি


33

সাধারণ কমান্ডগুলির মতো less, কোনও উপাত্ত তৈরি করা বা বিকল্পগুলি রফতানি করা কি ভাল? একে অপরের থেকে কোনও লাভ কি?

উদাহরণস্বরূপ, আমি যদি lessসর্বদা -Rকাঁচা অক্ষরগুলি দেখানোর বিকল্পটি ব্যবহার করতে চাই তবে এই উভয় সমাধানই কাজ করে:

  1. export LESS='-R'
  2. alias less='less -R'

এর মতো সরল মামলার জন্য, অন্যের থেকে কোনওটির কি কোনও লাভ আছে? এমন কোনও পরিস্থিতি যেখানে একজন সমস্যার সৃষ্টি করবে এবং অন্যটি হবে না?

আমি বেশ কয়েকটি infoএবং manপৃষ্ঠাগুলি পাশাপাশি গুগলিং পড়েছি, তবে আমি এখনও এ নিয়ে আটকে আছি।


1
না এটি সত্যিই ব্যক্তিগত পছন্দ নেমে আসে। আমি এটি বন্ধ করার পক্ষে ভোট দিয়েছি কারণ এটি আরও মতামত ভিত্তিক বলে মনে হচ্ছে।
slm

আরও তিনটি সমাধান: শেল ফাংশন তৈরি করুন (কেবল শেলটিতে কাজ করে তবে ইন্টারেক্টিভ হওয়ার দরকার নেই); ~ / বিনে বা যে কোনও জায়গায় স্ক্রিপ্ট তৈরি করুন (শেল স্টার্টআপ ওভারহেড রয়েছে তবে শেল চলমান এবং অন্যান্য প্রোগ্রামগুলি থেকে অবিলম্বে কাজ করে, এবং অবিচল থাকে); প্রোগ্রাম-নির্দিষ্ট কনফিগারেশন ফাইলগুলি ( lessআপনি এটি ব্যবহার করে করতে পারেন lesskey)
ডেল্টাব

3
@ এসএলএম এটি মতামত-ভিত্তিক নয়, বা কমপক্ষে এটি হওয়া উচিত নয়। একের জন্য অনেক বেশি ওভারহেডের প্রয়োজন হতে পারে এবং অকারণে সংস্থানগুলি বিশেষত আরও জটিল পরিস্থিতিতে ব্যবহার করা যেতে পারে। এক * নিক্স বিশ্বে প্রচলিতভাবে আরও সঠিক হতে পারে, বা কোথাও হয়ত একটি আনুষ্ঠানিক মান আছে। প্রোগ্রামাররা সর্বদা "স্লোপি কোডিং" নিয়ে বিরক্ত হন, এমনকি যখন সমস্ত উদ্দেশ্য এবং উদ্দেশ্যগুলি একই লক্ষ্য অর্জন করে।
skittleys

উত্তর:


30

উভয়ের মধ্যে একটি পার্থক্য হ'ল এলিয়াসগুলি কেবল শেল বৈশিষ্ট্য। পরিবেশের ভেরিয়েবলগুলি সমস্ত উপ-প্রক্রিয়াগুলি উত্তরাধিকার সূত্রে প্রাপ্ত হয় (যদি না ইচ্ছাকৃতভাবে পরিষ্কার করা হয়)।

এনভায়রনমেন্ট ভেরিয়েবল এমনকি যদি কাজ সম্ভাবনা বেশি হবে lessএমন আরেকটি শেল (যেমন মাধ্যমে হিসাবে পরোক্ষভাবে চালু করা হয়, tcsh), man, vim, psql, ইত্যাদি


3
বিশেষত, এলিয়াসগুলি কেবল ইন্টারেক্টিভ শেলগুলিতে কাজ করে : আপনি সেগুলি শেল স্ক্রিপ্টগুলিতে ব্যবহার করতে পারবেন না, যা আপনি মাঝে মাঝে চাইবেন। bash -c 'alias ll="ls -l"; ll'উপনামটি ব্যবহার করবে না
ডেলটাব

আহ, আমি জানতাম না! সুতরাং export LESS='-R'আমার যদি আমার .zshrc এ থাকে তবে একটি zsh অধিবেশন খুলুন এবং তারপরে সেই একই সেশনে ব্যাশ-এ স্যুইচ করুন (.bashrc এ কোনও এক্সপোর্ট ছাড়াই), পরিবেশের ভেরিয়েবলটি এখনও সেট হবে? আমি ভাবতাম উভয়ই হারিয়ে যাবে ....
স্কিটলেটিস

@ দালতাব আহ, হ্যাঁ, আমি এই পার্থক্যটি সম্পর্কে জানি, গ্রেপের রঙিন সমস্যাগুলির জন্য ধন্যবাদ। এটি নির্দেশ করার জন্য আপনাকে ধন্যবাদ।
skittleys

1

এটি আপনি যে সরঞ্জামটি ব্যবহার করছেন তার উপর এটি নির্ভর করে। এমন সরঞ্জামগুলি রয়েছে যা আপনাকে উভয়কেই ব্যবহার করতে দেয়, অন্যরা কেবল সেগুলিকে অনুমতি দেয়।

এমন কমান্ড রয়েছে যা অন্যরা ডাকে এবং পরিবেশের ভেরিয়েবলগুলি পড়ে এবং একই স্যুইচগুলি গ্রহণ করে, তবে প্রত্যেকটিতে একই স্যুইচ যুক্ত করা একটি ঝামেলা, যেমন সংকলকগুলির মতো make, এখানে পরিবেশের ভেরিয়েবলগুলি জ্বলজ্বল করে। আপনি ভেরিয়েবল সেট করেছেন এবং এটিকে ভুলে যান। এটি একটি প্লাস যা এটি অস্থায়ী হতে পারে এবং একক কমান্ডের জন্য কাজ করতে পারে।

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

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