প্রশ্ন কোনটি ভাল: ব্যবহার করে; অথবা & একটি লাইন একাধিক কমান্ড চালানো?


টিউটোরিয়াল এবং কিভাবে আমি প্রায়ই মিলিত কমান্ড দেখতে। এই ক্ষেত্রে,

sudo apt-get update && sudo apt-get install pyrenamer

চার সম্ভাব্য সংযোগকারী হতে বলে মনে হচ্ছে: &, &&, || এবং ;। যদিও &  সংযোগকারী আমার কাছে স্পষ্ট (এটি ব্যাকগ্রাউন্ডে একটি প্রক্রিয়া পাঠায় এবং টার্মিনাল উপলব্ধ করে), এটি পার্থক্য কী && এবং ;। এবং আমি জানি না || কায়ার মন্তব্য না হওয়া পর্যন্ত।

নিম্নলিখিত প্রশ্ন দুটি সংযোগকারীর মধ্যে পার্থক্য মোকাবেলা করে, তবে মন্তব্যগুলিতে বেশিরভাগই করে:

তাই এখানে সম্পর্কিত কয়েকটি প্রশ্ন আছে:

  1. পার্থক্য কি ; এবং &&?
  2. যখন আপনি তাদের ব্যবহার করা উচিত যথাক্রমে? কিছু ব্যবহারের ক্ষেত্রে এটি দেখতে সুন্দর হবে: যদি আমি একটি কমান্ড চালাতে চাই এবং তারপরে আমার কম্পিউটারটি বন্ধ করার পরে, কোন সংযোজকটি আমি চয়ন করব?
  3. তাদের কি সুবিধাদি এবং বিপদ? রবি বাসাক একটি মন্তব্য উল্লেখ এই উত্তর যে মত একটি কমান্ড cd /somewhere_else; rm -Rf * উদাহরণস্বরূপ, কমান্ড শৃঙ্খলে প্রথম উপাদান ব্যর্থ হলে বিধ্বংসী পরিণতি হতে পারে।
  4. যদি প্রাসঙ্গিক, তারা কোথা থেকে আসে?

332
2017-08-20 16:41


উত্স


আরেকটি সংযোগকারী আছে যা আপনি পারছেন না: ||এটার মতই && ব্যতীত এটি দ্বিতীয় কমান্ডটি কার্যকর করে যদি প্রথমটি অ-শূন্য (অসফল) অবস্থা থেকে সরে যায়। - Kaya
এছাড়াও আপনার স্ক্রিপ্ট চলমান যে নোট set -e ব্যর্থতার উপর স্ক্রিপ্টটি থামাবে যেমন যদি সমস্ত কমান্ড সংযুক্ত থাকে &&। - choroba
stackoverflow.com/questions/3573742/... - Ciro Santilli 新疆改造中心 六四事件 法轮功
কেউ কেউ উত্তর দিল না 4 ... আমি & & || সি প্রোগ্রামিং ভাষা দ্বারা অনুপ্রাণিত ছিল। যদি x (x && y) মিথ্যা ক্ষেত্রে মূল্যায়ন করে তবে সমগ্র অভিব্যক্তিটি অবশ্যই মিথ্যা হওয়া উচিত, তাই এটি যদি ব্যয়বহুল হয় তবে কম্পাইলার y এর মূল্যায়নটি অপ্টিমাইজ করতে পারে। আধুনিক সি এবং সি ++ মান আসলে প্রয়োজন এই অপ্টিমাইজেশান, তাই প্রোগ্রাম নিরাপদে অনুমান করতে পারে যে x যদি মিথ্যা হয় তবে মূল্যায়ন করা হবে না। উদাহরণস্বরূপ, PTR & PTR-> দিন> 31) PTR নাল থাকলেও ক্র্যাশ করবে না। এছাড়াও সি, বিবৃতি সঙ্গে শেষ; নির্বিশেষে একই লাইন বা অন্য বিবৃতি আছে কি না। - Kevin


উত্তর:


Cheatsheet:

A; B    # Run A and then B, regardless of success of A
A && B  # Run B if and only if A succeeded
A || B  # Run B if and only if A failed
A &     # Run A in background.

608
2017-10-20 11:02



এবং অবশ্যই, A & B &: পটভূমিতে A রান করুন, তারপরে পটভূমিতে B চালান (সাফল্য সত্ত্বেও) এবং শেলটিতে ফিরে আসুন। এটি প্রায় একই সময়ে উভয় প্রসেস চলমান হিসাবে একই সম্পর্কে কাজ করে। - Limited Atonement
এটা বলতে কি সম্ভব: ব্যাকগ্রাউন্ডে চালানো, শুধুমাত্র একটি কাজ যদি পটভূমিতে বি অনুসরণ করে? ( আমি অনুমান করি &&& ?) - user230910
@ ব্যবহারকারী ২30910: যে হবে (A && B) &। - leftaroundabout
আপনি এই জন্য আধিকারিক নথি উল্লেখ করতে পারেন? - Jaime Hablutzel
@ জ্যাক ক্রনজোজ থেকে মৃত্যুদন্ড কার্যকর করলে, এই নিয়মটি পুরোপুরি অনুসরণ করে না, কোন ধারণা কেন? একটি পাইথন ফাইলের জন্য - CodeGuru


&& শুধুমাত্র দ্বিতীয় কমান্ড রান করলে প্রথমটি স্ট্যাটাস 0 দিয়ে সফল হয় (সফল হয়েছিল)। ; উভয় কমান্ড চালায়, এমনকি যদি প্রথমটি অ-শূন্য স্থিতি সহ প্রস্থান করে।

সঙ্গে আপনার উদাহরণ && সমানভাবে paraphrased হতে পারে

if sudo apt-get update ; then
    sudo apt-get install pyrenamer
fi

77
2017-08-20 16:46



ধন্যবাদ। আমি বিভিন্ন subquestions সহজেই পার্থক্যযোগ্য নিশ্চিত করতে প্রশ্ন আপডেট করা হয়েছে। - don.joey
@ ব্যক্তিগত: আপনি ব্যবহার করা উচিত ; দ্বিতীয় কমান্ড সফল করার জন্য পূর্ববর্তী একটি প্রয়োজন হয় না। - choroba


ব্যবহার ; প্রথম কমান্ড সফল কিনা বা না তা নির্বিশেষে কমান্ড চালানো হবে।

ব্যবহার && প্রথম কমান্ড সফলভাবে কার্যকর হলে দ্বিতীয় কমান্ড কার্যকর করুন (স্ট্যাটাস 0)।

উভয় বিভিন্ন দৃষ্টিকোণ ব্যবহার করা হয়। দীর্ঘ প্রসেসের জন্য লাইক করুন, ইনস্টলেশনের জন্য এটি ইনস্টল করুন এবং ইনস্টল করুন। তোমার উচিত make && make install। সুতরাং ইনস্টল শুধুমাত্র যদি চালানো হবে make সফল।

তাই নির্ভরশীল কমান্ডের জন্য আপনি ব্যবহার করা উচিত &&

Wring bash, বা স্বাধীন কমান্ড ব্যবহার সঙ্গে কমান্ড ; 

সুতরাং আপনি কম্পিউটার বন্ধ করতে চান এমনকি প্রথম কাজ ব্যর্থ হয়েছে ; , কিন্তু প্রথম কাজ সম্পূর্ণ সাফল্য চান তাহলে শাটডাউন ব্যবহার শুরু &&


28
2017-08-20 16:50



ধন্যবাদ। আমি উপস্থাপন আপনি শেষ ব্যবহার ক্ষেত্রে পছন্দ। আমি প্রশ্ন আপডেট করেছি। - don.joey


a ; b একটি প্রস্থান অবস্থা নির্বিশেষে খ চালানো হবে। a && b একটি সফল যদি শুধুমাত্র খ রান হবে।

এটি প্রথম এবং 3 টি প্রশ্নের উত্তর দিতে যথেষ্ট এবং যথেষ্ট। বিশেষ করে, 2 খুব বিস্তৃত, এবং "এক" নির্দিষ্ট উত্তর দেওয়া যাবে না - আপনার সেরা বীট ক্ষেত্রে ভিত্তিতে ভিত্তিতে ক্ষেত্রে সিদ্ধান্ত নিতে হয়।

4 র্থ প্রশ্ন হিসাবে: তারা বাশ সিনট্যাক্স

হয় ব্যবহার করে কোন অভ্যন্তরীণ বিপদ নেই। আবার, উপরে সংজ্ঞা যথেষ্ট। এটা আপনি লিখতে হবে যে বোঝায় && কখন b যদি unintended প্রভাব আছে a সফল হয় না। আরও নিয়ম বা ব্যাখ্যা করার প্রয়োজন নেই, IMHO।


13
2017-08-20 21:05