<<< ব্যাশে অপারেটরটি কি বাইনারি-নিরাপদ "ট্রিপল কম" আছে?


27

এটি একটি বরং অনুমানমূলক প্রশ্ন, সুতরাং দয়া করে আমাকে জিজ্ঞাসা করবেন না কেন আমি এটি করতে চাই।

ধরে নিলাম যে আমার কাছে একটি চলক GIFরয়েছে যার মধ্যে বাইনারি ডেটা রয়েছে এবং ধরে নেওয়া যায় যে আমি পাইপ |অপারেটরটি ব্যবহার করতে পারি না , নিম্নলিখিতটি 'ট্রিপল-কম-কম' অপারেটরটি ব্যবহারের সঠিক উপায় হওয়া উচিত :

openssl enc -base64 <<< $GIF

যাইহোক, এটা আমার কাছে মনে হচ্ছে যে <<<নয় বাইনারি-নিরাপদ এবং সেইজন্য বাইনারি ডেটা বিকৃত পায়।

একটি বাইনারি-নিরাপদ সমতুল্য আছে?


দয়া করে নোট করুন যে ব্যাশ ভেরিয়েবলগুলিতে NUL অক্ষর থাকতে পারে না। সুতরাং আপনার পরিবর্তনশীল $GIF, শুরু করার জন্য, শুরু করার আগেও পুরো বাইনারি হোল্ড করে না। যাইহোক, NUL চরিত্র ব্যতীত, এটি অন্য সমস্তকে ধরে রেখেছে। (রেফারেন্স হিসাবে: vaab.blog.kal.fr/2014/05/03/… )
vaab

উত্তর:


31

এখানে স্ট্রিং ফেরৎ ( <<<) এর একটি সহজ ফর্ম এখানে ডকুমেন্ট ফেরৎ ( <<)। এখানে স্ট্রিং পুনঃনির্দেশ "বাইনারি নিরাপদ" নয়; বাশ এখানে স্ট্রিংয়ের উপর সম্প্রসারণ করবে। এছাড়াও, বাশ এখানে স্ট্রিংয়ের শেষে একটি নতুন লাইন যুক্ত করবে (কমান্ডটি জারি করুন xxd -p <<< "foo"এবং আপনি তার বিনিময়ে পাবেন 666f6f0a)।

আপনার একমাত্র নিরাপদ বাজি, পাইপগুলি বাদে, I / O পুনঃনির্দেশ

একই না বাইনারি নিরাপদ প্রশ্ন এখানে । আপনি এনকোডড ডেটা সঞ্চয় করতে পারেন এবং এটি ব্যবহার করে দেখতে পারেন

COMMAND_WITH_BIN_INPUT <(uudecode <(echo "$uuEncodedData")) 

তবে এটি খুব বেশি দূরে নয়

echo "$uuEncodedData"|uudecode|COMMAND_WITH_BIN_INPUT

তবে পাইপ মেটাচার ছাড়াই।


1
অথবা, চেষ্টা করুন od -a <<< ""এবং আপনি nlহেক্স মানের পরিবর্তে দেখতে পাবেন ।
jcalfi314

@ ওয়েসলি সেখানে আর্কাইভ.আর.ও. :) আসল লিঙ্ক: web.archive.org/web/2012012621216565/http://tldp.org/LDP/abs/html/…
জেসন সি

4

বাশ সাধারণভাবে বাইনারি নিরাপদ নয়, এবং প্রতিস্থাপনের সময় বাইনারি সামগ্রীযুক্ত ভেরিয়েবলগুলিতে নাল এবং নিউলাইনগুলিকে দূষিত করবে।

সুতরাং আমি মনে করি উত্তরটি "না" তবে আরও মূলত "শেল স্ক্রিপ্টিং ভাষায় নয়" কারণ তাদের সমস্ত বাইনারি নিয়ে সমস্যা বলে মনে হয় to

আমি বলব যাইহোক আপনি $ জিআইএফ-তে ডেটা আনার পরিকল্পনা করছেন, আপনি পরিবর্তে এটি একটি ফাইলে নিয়ে যাবেন বা বিকল্প স্ক্রিপ্টিং ভাষা হিসাবে পাইথনটি ব্যবহার করবেন যা কোনও সমস্যা ছাড়াই বাইনারি ডেটা পরিচালনা করবে।


1
রেফারেন্স বা নির্ভুলতা, বা সাধারণ উদাহরণগুলি আপনার পক্ষ থেকে বন্য অনুমান এবং সাধারণ অনুভূতির চেয়ে আরও বেশি সহায়ক হত। ব্যাশের মাধ্যমে বাইনারি ডেটা পার্স করার উপায় রয়েছে।
vaab
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.