"আদেশ ও& আদেশ" এবং "আদেশের মধ্যে পার্থক্য কী; কমান্ড "


49

আমি উবুন্টু "কমান্ড ও& কমান্ড" এবং "কমান্ড; কমান্ড",
যেমন এই দুটি ব্যবহার দেখতে পাইapt-get update && apt-get upgrade

আমি ব্যবহার করলে কি আলাদা হবে apt-get update; apt-get upgrade?
আমি এই নির্দিষ্ট ব্যবহারের জন্য জিজ্ঞাসা করছি না তবে সাধারণভাবে এই দুটি ব্যবহারের মধ্যে পার্থক্য কী?


2
উইন কম্যান্ড-লাইন ও ব্যাচ একই বৈশিষ্ট্য আছে: & (simple sequencing), && (conditional AND) and || (conditional OR)
করণ

5
আরও দেখুন: বাশ রেফারেন্স ম্যানুয়াল - কমান্ডের তালিকা । সাধারণভাবে, ডকুমেন্টেশনে আপনি খুঁজে পাচ্ছেন না এমন কিছুই নেই; আপনার নির্দিষ্ট সিনট্যাক্স উপাদানগুলির বিষয়ে আপনার যদি প্রশ্ন থাকে তবে এটি দেখার পক্ষে মূল্যবান।
slhck

1
@ করণ এবং সম্পূর্ণতার জন্য, বাশও (লিনাক্স / উবুন্টু) রয়েছে ||
ইজকাটা

উত্তর:


88

&&একটি লজিকাল অপারেটর। ;সহজ ক্রম হয়।

ইন cmd1 && cmd2, সেন্টিমিডি 2 কেবল তখনই চালিত হবে যদি সেন্টিমডি 1 একটি সফল রিটার্ন কোড সহ প্রস্থান করে।

যেখানে cmd1; cmd2, cmd2 সেমিডি 1 এর প্রস্থান স্থিতি নির্বিশেষে চলবে (ধরে নিলে আপনি আপনার শেলটিকে আপনার স্ক্রিপ্ট বা কোনও কিছুর সমস্ত ব্যর্থতার জন্য প্রস্থান করার জন্য সেট করেননি)।

সম্পর্কিত নোটে, 'ওআর' লজিকাল অপারেটর cmd1 || cmd2ব্যবহার করে ||, সিএমডি 2 কেবল তখনই চালিত হবে যদি সেমিডি 1 ব্যর্থ হয় (একটি শূন্য-বহির্গমন কোড ফেরত দেয়)।

এই লজিকাল অপারেটরগুলি মাঝে মাঝে একটি বুনিয়াদি যদি স্টেটমেন্টের জায়গায় স্ক্রিপ্টগুলিতে ব্যবহৃত হয়। উদাহরণ স্বরূপ,

if [[ -f "$foo" ]]; then mv "$foo" "${foo%.txt}.mkd"; fi

... এর সাথে আরও সংক্ষিপ্তভাবে অর্জন করা যেতে পারে:

[[ -f "$foo" ]] && mv "$foo" "${foo%.txt}.mkd"

আমি এটিকে কিছুটা মিথ্যাবাদী বলে মনে করি কারণ আমার বোঝাপড়া থেকে, সফল রিটার্ন কোডটির অর্থ 0, যা বুল হয় যখন লজিক্যাল মিথ্যা দেয়। সুতরাং বেশিরভাগ ভাষায় ব্যবহৃত ম্যাকার্থি মূল্যায়নের দর্শন অনুসরণ করে পরবর্তী বিবৃতিটি মূল্যায়ন (চালানো) না করে তাত্ক্ষণিক মিথ্যা ফিরিয়ে আনা উচিত।
ডেলা

33

বাক্য গঠন

command1 && command2

command2 যদি মৃত্যুদন্ড কার্যকর করা হয়, এবং কেবল যদি,command1শূন্য (একজন প্রস্থান অবস্থা ফেরৎ সত্য )। অন্য কথায়, চালানcommand1এবং যদি এটি সফলতা হয়, তবে চালানcommand2

command1 ; command2

কমান্ড 1 এবং কমান্ড 2 উভয়ই নির্বিশেষে কার্যকর করা হবে। সেমিকোলন আপনাকে এক লাইনে অনেক কমান্ড টাইপ করতে দেয়।

সম্পর্কিত :

command1 || command2

কমান্ড 2 কার্যকর করা হয় এবং কেবল যদি, কমান্ড 1 একটি শূন্য-বহির্গমন স্থিতি ফিরিয়ে দেয়। অন্য কথায়,command1সফলভাবে চালানো বা চালানোcommand2


উদাহরণ

&& অপারেটর:

$ rm /tmp/filename && echo "File deleted"

; অপারেটর:

$ echo "foo" ; echo "bar"

|| অপারেটর:

$ cat /tmp/filename 2>/dev/null || echo "Failed to open file"

বাহ্যিক লিঙ্কসমূহ

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