অ্যারে উপাদানগুলিতে স্ট্রিং যুক্ত করুন এবং তাদেরকে একটি অভিব্যক্তিতে যুক্ত করুন


2

ধরা যাক আমার একটি অ্যারে আছে

> words=(foo bar baz)

এখন আমি উপাদানগুলিতে যোগ দিতে পারি

> echo ${(j., .)words}
foo, bar, baz

এবং আমি উপাদানগুলিতে একটি স্ট্রিং যুক্ত করতে পারি:

> echo ${^words}yeah
fooyeah baryeah bazyeah

নিম্নলিখিতগুলির সাহায্যে আমি উপাদানগুলিকে সংযোজন এবং যোগদান করতে পারি:

> wordsyeah=(${^words}yeah)
> echo ${(j., .)wordsyeah}
fooyeah, baryeah, bazyeah

একক অভিব্যক্তিতে, অতিরিক্ত ভেরিয়েবল ব্যবহার না করেই "ফুইয়া, বেরিয়া, বাজিয়াহ" মুদ্রণ করা সম্ভব?

বোনাস: আমি কোনও ভেরিয়েবল ব্যবহার না করেই কি এটি মুদ্রণ করতে পারি?

আমি যতদূর বলতে পারি, এটি স্ট্রিংগুলিতে প্যারামিটার সম্প্রসারণ চালিয়ে যায়, তবে কীভাবে (বা যদি) এটি সম্ভব হয় তা সন্ধান করতে সক্ষম হয়েছি।


এটি মূলত এসও-তে এই প্রশ্নের সদৃশ । আমার উত্তর অনুসারে আপনি এটিকে অর্জন করতে পারেন echo ${(j:, :):-${^${=:-foo bar baz}}yeah}, যা টাইপ করা আসলেই শক্ত এবং 12 অক্ষরের চেয়ে বেশি দীর্ঘ echo fooyeah, baryeah, bazyeah। সুতরাং ভেরিয়েবলগুলি জড়িত থাকলে উদাহরণস্বরূপ এটি অর্থবোধ করে echo ${(j:, :):-${^${words}}yeah} ( উদাহরণস্বরূপ ( wordsঅ্যারে হওয়ার সাথে ))।
অ্যাডেফন

বাহ, আপনি পুরোপুরি ঠিক বলেছেন। আমি এই প্রশ্নটি খুঁজে পাইনি। এখন আমি ভাবছি আমি কেন এখানে পোস্ট করেছি posted এবং আপনি উত্তর হিসাবে ঠিক উত্তর লিখছিলাম। আমি এখন এই প্রশ্নটি দিয়ে কী করব তা মোডগুলিকে সিদ্ধান্ত নিতে দেব।
সাইমন কোহলমিয়ার

উত্তর:


2

উত্তর হচ্ছে

> print ${(j., .)${:-${^words}yeah}}
fooyeah, baryeah, bazyeah

অথবা

> print ${(j., .)${:-{foo,bar,baz}yeah}}
fooyeah, baryeah, bazyeah

ভেরিয়েবল ব্যবহার না করেই

সমালোচনা অংশটি ${name:-word}। এটি ম্যানুয়ালটিতে ব্যাখ্যা করা হয়েছে ।

${name-word}
${name:-word}

যদি নামটি সেট করা থাকে, বা দ্বিতীয় আকারে নন-শূন্য হয়, তবে তার মানটির বিকল্প দিন; অন্যথায় বিকল্প শব্দ। দ্বিতীয় ফর্মের নাম বাদ যেতে পারে, সেক্ষেত্রে শব্দটি সর্বদা প্রতিস্থাপিত হয়।

আমার কাছে এটি দেখানোর জন্য # জেএসএফ থেকে phy1729 কে ধন্যবাদ জানাই :)

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