একক উদ্ধৃত string 'স্ট্রিং' এবং ডাবল কোটেড $ "স্ট্রিং" বাশের মধ্যে পার্থক্য কী?


9

আমি echoদুটি কমান্ড ব্যবহার করে নতুন লাইনটি কার্যকর করার চেষ্টা করছিলাম :

  1. প্রথম আদেশ:

    echo $'Hello World\nThis is a new line'

    প্রতিক্রিয়া:

    Hello World
    This is a new line
    
  2. দ্বিতীয় আদেশ:

    echo $"Hello World\nThis is a new line"

    প্রতিক্রিয়া:

    Hello World\nThis is a new line

আমার প্রশ্ন কি দিয়ে আবৃত স্ট্রিং এর মধ্যে পার্থক্য $' 'স্ট্রিং বনাম সঙ্গে আবৃত $" "মধ্যে bashএর echo?


সহায়ক দ্রষ্টব্য: ডাবল উদ্ধৃতি দুর্বল উদ্ধৃতি হিসাবেও পরিচিত এবং একক উদ্ধৃতিটি শক্তিশালী উদ্ধৃতি হিসাবেও পরিচিত।
রাফাফ তাহসিন

2
হ্যাঁ, কিন্তু "weak quote"এবং 'strong quote'থেকে ভিন্ন $'C String'এবং $"I18N String"
ডোপঘোতি

আপনি আসল এমভিপি। : ডি >>> @ দোপগোতি
রাফাফ তাহসিন

আমি যা করতে পারি তা করি (:
ডোপগোতি

উত্তর:


10

এখানে যেমন বর্ণনা করা হয়েছে , সিনট্যাক্সটি $'string'একটি সি-স্টাইলের স্ট্রিং নির্দিষ্ট করে যা ম্যাজিক অব্যাহত অক্ষরগুলিকে অন্তর্ভুক্ত করে যেমন \nএকটি নিউলাইন। $"string"এটি আই 18 এন সম্প্রসারণের জন্য, যার কোনও জাদু ছাড়েনি।

নোট করুন যে এগুলি আরও সাধারণ "string"(দুর্বল উদ্ধৃতি) এবং 'string'(শক্ত উদ্ধৃতি) থেকে পৃথক।


9

$মধ্যে স্ট্রিং এর শুরুতে:

echo $'Hello World\nThis is a new line'

এস্কেপ সিকোয়েন্সগুলি ব্যাখ্যা করার কারণ ঘটায়।

বাশ রেফারেন্স ম্যানুয়াল [বলে]

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

কিন্তু

echo $"Hello World\nThis is a new line"

সম্পূর্ণ ভিন্ন। স্থানীয় স্থানীয় অনুবাদ সম্পর্কিত এই [নিবন্ধ] বলেছেন:

ডলারের চিহ্ন ('$') এর আগে একটি ডাবল-কোটেড স্ট্রিং বর্তমান স্ট্রোক অনুসারে স্ট্রিংটির অনুবাদ করা হবে। যদি বর্তমান লোকেল সি বা পোসিক্স হয় তবে ডলারের চিহ্নটি উপেক্ষা করা হবে। যদি স্ট্রিংটি অনুবাদ এবং প্রতিস্থাপন করা হয় তবে প্রতিস্থাপনটি ডাবল-কোটেড হয়।


দ্রষ্টব্য: IIRC উভয় $'string'এবং $"string"বিভিন্ন শাঁস মধ্যে সমর্থন করে না খুঁজে পেতে পারেন। অন্যান্য শাঁসের লোকেরা কেবল কৌতূহল নিয়ে তাদের দিকে নজর দেয় না তবে স্ক্রিপ্টের বহনযোগ্যতার জন্য এটি এড়ানো যায় কিনা তা নিয়েও তারা বিতর্ক করে।


1
ksh93বুঝতে পারে $'...'
কুসালানন্দ

@ কুসালানন্দ: হুম, শুভ নোট :)
এসজেসাম

4
$'xxx'বাশিজম নয় তবে kshবেশ কয়েক বছর আগে প্রথম পরিচয় হয়েছিল bash। এটি বর্তমানে পসিক্স স্ট্যান্ডার্ড দ্বারা সমর্থিত zshএবং busybox shপর্যালোচনাধীন রয়েছে।
jlliagre

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