নতুন সফ্টওয়্যার ইনস্টল করার আগে ইকো ব্যবহার করবেন কেন?


25

আমি কম্পিউটারে বিশ্বে নতুন। আরওএস ইন্ডিগো ইনস্টল করার সময়, প্রথম পদক্ষেপটি আমাকে নীচের কোডটি ব্যবহার করার নির্দেশ দেয়:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

আমরা কেন এই প্রসঙ্গে echoকমান্ডটি ব্যবহার করব sh -c? অন্যান্য ইনস্টলেশন প্রক্রিয়াগুলিতেও আমি ইকো কমান্ডের ব্যবহার দেখেছি।

দ্রষ্টব্য - sh কমান্ড , আরএস ইন্ডিগো ইনস্টলেশন উইকি ব্যবহার করুন


উত্তর:


43

সাধারণভাবে echoকমান্ডের কাজটি কনসোলে একটি স্ট্রিং (পাঠ্যের টুকরো) প্রদর্শন করা হয়। কিন্তু >এবার, echoকমান্ডের পরে একটি অক্ষর যুক্ত করা হয়েছে , আউটপুটটিকে একটি পাঠ্য ফাইলে পুনর্নির্দেশ করা /etc/apt/sources.list.d/ros-latest.list,।

সুতরাং মূলত, এই পুরো কমান্ডটি একটি টেক্সট ফাইলে একটি টুকরো টেক্সট লিখে। এখন, এখানে জটিল অংশটি আসবে:

ফাইলটিতে লেখা স্ট্রিং প্রতিটি কম্পিউটারের জন্য আলাদা হতে পারে। কমান্ডটি $(lsb_release -sc)চললে অংশটি সমাধান হয়ে যায় (অন্য কোনও কিছুর পরিবর্তে) echo

/etc/apt/sources.list.d/ros-latest.listনিজের জন্য পরিবর্তনটি দেখার জন্য আপনি কমান্ডের আগে এবং পরে কোনও পাঠ্য সম্পাদককে খুলতে পারেন । (এই কমান্ডের আগে ফাইলটি উপস্থিত নাও থাকতে পারে))


19
আসলে, >পাঠ্য ফাইলটি ওভাররাইট করে, >>শেষে যুক্ত হয় app
dirkt

3
ধন্যবাদ ধন্যবাদ আমার খারাপ! ;) এটি বেশ কয়েকটি স্ক্রিপ্টিং ভাষা শেখার পরিণতি। পরস্পরবিরোধী আচরণ অবশেষে আপনাকে আক্ষেপ করে। এমনকি ডস,> ওভাররাইটেও।

10
echoকনসোল নয়, স্ট্যান্ডার্ড আউটপুট লিখুন।
মাইকেল হ্যাম্পটন

4
"পুনঃনির্দেশিত না করে, স্ট্যান্ডার্ড আউটপুট হ'ল পাঠ্য টার্মিনাল যা প্রোগ্রাম শুরু করে। সুতরাং, হ্যাঁ, echoকনসোলে লিখুন।

2

প্যাকেজ পরিচালনা এবং সফ্টওয়্যার সংগ্রহস্থল

অপারেটিং সিস্টেমগুলিকে আপডেট রাখতে এবং সহজেই নতুন সফ্টওয়্যার প্যাকেজ আনতে এবং ইনস্টল করার জন্য ডেবিয়ান ভিত্তিক লিনাক্স ডিস্ট্রিবিউশনগুলি সংগ্রহস্থলগুলিতে (অ্যাপ্লিকেশন ইনস্টলেশন প্যাকেজ এবং আপগ্রেড প্যাকেজগুলির ডেটাবেস) উপর নির্ভর করে। এই সংগ্রহস্থলের অবস্থান সংরক্ষণ করা হয় /etc/apt/sources.list, তবে অতিরিক্ত অ্যাপ্লিকেশন, সাধারণত নির্দিষ্ট অ্যাপ্লিকেশনগুলির জন্য স্বতন্ত্র /etc/apt/sources.list.dডিরেক্টরিতে ডিরেক্টরিতে সংরক্ষণ করা যেতে পারে ।

প্যাকেজ সূচক আপডেট কমান্ডটি apt-get updateকার্যকর করা হলে, আপনার অপারেটিং সিস্টেমটি উপলব্ধ প্যাকেজগুলির জন্য এই প্যাকেজ সংগ্রহস্থলগুলি পরীক্ষা করে এবং আপনার অপারেটিং সিস্টেমের জন্য উপলব্ধ উপলব্ধ সফ্টওয়্যারগুলি নিবন্ধভুক্ত করে যা আপনি প্রথাগত apt-get install <package>কমান্ড ব্যবহার করে ইনস্টল করতে পারেন can

এই সফ্টওয়্যার উত্সগুলির একটির উদাহরণ:

deb http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty main restricted

এই উত্সগুলির জন্য লিনাক্স বিতরণের নির্দিষ্ট সংস্করণগুলি উল্লেখ করা গুরুত্বপূর্ণ। একটি উদাহরণ বিশ্বাসভাজন যা উবুন্টু 14.04 কোডনাম হিসাবে হয়। আপনার সাথে সম্পূর্ণ বিবরণের জন্য আপনার OS (Debian ভিত্তি করে) খোঁজ করতে পারেন lsb_release -aবা lsb_release -scযা উপায়ে সংক্ষিপ্ত এবং কোডনাম

আপনার প্রশ্নে, অংশটি $(lsb_release -sc)ব্যাখ্যা করা হয়েছে এবং আপনার অপারেটিং সিস্টেম থেকে প্রাপ্ত ফলাফলটি কাস্টম উত্স ফাইল ros-সর্বশেষ তালিকাতে মুদ্রিত হবে যা আদেশটি কার্যকর করার পরে তৈরি করবে।


কমান্ড ভাষার দোভাষী

shকমান্ড বোর্ন শেল । বেশ কয়েকটি শাঁসের মধ্যে এটি একটি, তবে এটি পুরানো মান হিসাবে বিবেচিত হয় এবং সাধারণত আপনার নির্দিষ্ট উপস্থিত থাকতে পারে। এটি bashঅনেকগুলি শেল স্ক্রিপ্টে দেখতেও সাধারণ । এই ঘোষণাটি বিভিন্ন শেল বিভিন্ন সিনট্যাক্স ব্যবহার করে বলে শেলটি নির্দিষ্ট করে।

-cপতাকা হিসাবে , উদ্ধৃত man bash:

যদি -c বিকল্প উপস্থিত থাকে তবে কমান্ডগুলি স্ট্রিং থেকে পঠিত হবে। স্ট্রিংয়ের পরে যদি আর্গুমেন্ট থাকে তবে তাদের অবস্থানিক পরামিতিগুলিতে বরাদ্দ করা হয়,, 0 দিয়ে শুরু করে।

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


TL; ড

কমান্ডটি ব্যাখ্যা করা মানের deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) mainপরিবর্তে একটি কাস্টম উত্স ফাইলে প্রিন্ট করে $(lsb_release -sc)

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