বন্ধনী সহ "তারপরে" প্রতিস্থাপন করা কি সম্ভব?


10

আমি প্রথম কোনও Cভাষাতে কোডিং এবং ব্যবহার শিখলাম

if ( code )
then 
code
fi

আমার কোড পড়া আমার পক্ষে সত্যিই কঠিন করে তোলে (কেন জিজ্ঞাসা করবেন না)। এর বিকল্প কি আছে then?

এটার মতো কিছু:

if ( code ) {
 code
}
fi

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

উত্তর:


21

বিকল্প নেই, তবে আপনার যদি সত্যিই ধনুর্বন্ধনী প্রয়োজন হয় তবে আপনি উভয়ই ব্যবহার করতে পারেন:

if true ; then {
    something
} fi

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

আমি এই স্টাইলটি সাধারণভাবে বা কোডটির জন্য সুপারিশ করব না যা অন্য কারও পড়ার দরকার পড়বে তবে এটি আপনাকে যে ধনুর্বন্ধনী পছন্দ করছে তা দেয় এবং আপনি যদি এমন একটি সম্পাদক ব্যবহার করেন যা ব্রাস্ক ব্লক প্রয়োজন হয় বা এটি কৌশলটি সম্পাদন করবে তবে এরকম কিছু.


এখানে আরও একটি যা "সুপারিশ করার মতো নয়" - ধনুর্বন্ধনী ধনুর্বন্ধনী: { if { [[ a == aa ]];};then { echo yes;};else { echo no;}; fi;}- মূলত, আপনি যখন bashযথেষ্ট পরিমাণে ব্যবহার করেন তখন স্ট্যান্ডার্ড সিনট্যাক্সটি যথেষ্ট পরিচিত হয়ে যায়, যাতে এটি কোনও ইস্যুতে বেশি নয়।
পিটার.ও

15

আপনি এ খুঁজছেন হবে বলে মনে হচ্ছে সি শেল ( csh, tcsh, ইত্যাদি ...)। বিশেষজ্ঞরা প্রোগ্রামিংয়ের জন্য এর বিরুদ্ধে প্রস্তাব দেওয়ার বিষয়ে সচেতন হন ।

আমি নিশ্চিত নই যে আপনি যে অংশটিকে আবেদনময়ী বলে বিবেচনা করছেন তা সত্য thenনীচের লাইনে রয়েছে কিনা? যদি তা হয় তবে নীচের স্টাইলটি ব্যবহার করে বিবেচনা করুন:

if condition; then
    stuff
fi

আমি পিছন মতো বানান বিবৃতি নাম মানা আছে fiজন্য ifএবং esacজন্য case(কিন্তু elihwজন্য whileকরা বিচিত্র ধরনের!)। তবে এটি স্ট্যান্ডার্ড বোর্ন শেল, আপনি ব্যবহার করতে পারেন এমন সবচেয়ে বহনযোগ্য শেল সিনট্যাক্স।


আপনার উত্তরের জন্য ধন্যবাদ - আমি thenআপত্তিজনকটি খুঁজে পাচ্ছি না , এটি কেবলমাত্র আমার সম্পাদকটি সম্পর্কিত {}জুটি হাইলাইট করবে এবং এটি যখন আমার কোনও ধরণের ত্রুটি হয় তখন এটি কার্যকর কারণ তখন আমি আমার সমস্ত ifবিবৃতি সহজেই দেখতে পারি এবং কিছু ভুল হয়েছে কিনা তা দেখতে পাচ্ছি that's ।
3 的 人

1
অই হ্যাঁ. যে প্লাস viএর %কমান্ড যা ম্যাচিং বক্রবন্ধনী / প্রথম বন্ধনী / বন্ধনী থেকে জাম্প। আমি সহানুভূতি জানাই আমি মিস্ viএর %যখন পাইথন প্রোগ্রামিং কমান্ড।
সেলেদা

8
আপনি কি ম্যাচিট ভিম প্লাগইন চেষ্টা করেছেন? এটি ব্যাশ-এ / ফাইয়ের জন্য% লাফ এবং অন্যান্য ভাষায় প্রচুর অন্যান্য ব্লককে সমর্থন করে। এখানে দেখুন - vim.org/scriptts/script.php?script_id=39
amisax

@ আমিটকুমার টিপটির জন্য ধন্যবাদ। আমি একটি চেহারা আছে!
সেলেদা

9

এটি চোখের উপর আরও সহজ:

[ condition ] && {
   # statement 1
   # statment 2
   # ...
}

তা ছাড়া, এটিতে অভ্যস্ত হয়ে যান। ভাষার আইডিয়া ব্যবহার করুন।


1
তবে সাধারণত অপ্রয়োজনীয় বাশিজম হারাতে হবে এবং কেবল বন্ধনীর এক সেট ব্যবহার করুন।
জোসিপ রডিন

5

নীচে সেখানে কাছাকাছি। অদ্ভুত।

: if; { code; } && {
    code
}

আমি ব্যক্তিগতভাবে কখনও পছন্দ করি না ...

if true; then
more;fi

... নিজেকে গঠন। কন্ট্রোল শব্দের নেতৃত্ব দেওয়ার সময় আমি এটি পছন্দ করি । এটি আমার কাছে সর্বদা অদ্ভুত বলে মনে হয়েছিল যে প্রচলিত ...;thenফর্মটি আদৌ এসেছিল।

if    this && that
then  do these things too
else  i will probably get upset
fi

এটি আপনার অনুরোধের সম্পূর্ণ বিপরীত, তবে এটি করার অন্য উপায় way প্রয়োজন অনুসারে আপনি যে কোনও পুনর্নির্দেশের fiপ্রয়োজন অনুসারে লাইনটিও টেক করতে পারেন এবং এগুলি পুরো ব্লকের জন্য প্রয়োগ করা হবে।


এই প্রচলিত রূপটি কেবলমাত্র অন্য একটি অবতার বলে মনে হচ্ছে if(...) {, যেমন ifসি-জাতীয় ভাষাগুলির মতো একই লাইনে খোলার ব্রেস ছেড়ে leaving
রুসলান

@ রুসলান - সম্ভবত - তবে লাইনটি আসলে সি তে মোটেই কোনও পার্থক্য করে না, তাই না?
মাইকজার্ভ

ডান, তবে উভয়ই লাইন ব্রেকটি শেলের মধ্যে কোনও পার্থক্য তৈরি করে না, তাই না? ifপরের লাইনে থাকলেও শর্তের পরে সেমিকোলন হ'ল দোভাষীকে কমান্ডের ধারাবাহিকতার সন্ধান করে ।
Ruslan

@ রুসলান - হ্যাঁ - আপনাকে ;সেই ক্ষেত্রে ডিলিম ব্যবহার করতে হবে । এ কারণেই তারা করে।
মাইকজার্ভ

:শেলটি অন্তর্নির্মিতভাবে এটি ব্যবহার করে , কেবল কোডের একটি লাইন বায়ু-ভিত্তিক সি সিনট্যাক্সের কাছাকাছি হতে পারে, কোনওভাবেই উত্সাহ দেওয়া উচিত নয়।
জোসিপ রডিন

0

এখানে একটি উপায়:

[ "$var" = "find" ] && echo "found"

সমান:

if [ "$var" = "find" ]; then
  echo "found"
fi

তিনি যেমন প্রশ্নে বলেছেন, তিনি বন্ধনী চাইছেন । কিছুটিকে {...}চারপাশে রাখুন echo "found"এবং তারপরে আপনি সঠিক দিকে যাবেন।
পিটার.ও

-2

আমি সবসময় ব্যবহার:

if (code); then
   code;
fi

সম্ভবত আপনি যা চান ঠিক তা নয় তবে এটি খানিকটা সি পছন্দ।


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