ডাবল কোলন '::' সমন্বিত স্ক্রিপ্ট ফাংশনগুলির নাম


17

আমি আজ একটি বাশ স্ক্রিপ্ট জুড়ে এসেছি যার ফাংশনের নাম রয়েছে যার মধ্যে ডাবল কলোন ::রয়েছে, যেমন, file::write()এবং file::read()। আমি এই সিনট্যাক্সটি বাশ স্ক্রিপ্টের আগে কখনও দেখিনি, এবং যখন আমি স্ক্রিপ্টটি চালিত করি তখন এটি ঠিকঠাক (আমার অবাক হওয়ার জন্য) দৌড়ে যায়।

আমার সিস্টেমে বাশের ম্যান পেজটি ঝাঁকুনির পরে (এবং অনলাইন) ফাংশন নামের জন্য এই সিনট্যাক্সটিকে সমর্থন করে এমন ডকুমেন্টেশনে আমি এমন কিছু খুঁজে পাচ্ছি না। উদাহরণস্বরূপ, বিভাগটি Shell Defined Functionsশেল ফাংশন হওয়ার জন্য সিনট্যাক্সটি সংজ্ঞায়িত করে

function name [()] compound-command [redirection]

এবং তারপরে (ম্যানুয়ালটিতে অন্য কোথাও) টোকেনটি nameহিসাবে সংজ্ঞায়িত করা হয়েছে

name   A word consisting only of alphanumeric characters and
       underscores, and beginning with an alphabetic character
       or an underscore.  Also referred to as an identifier.

ফাংশন নামের জন্য ডাবল কোলন সিনট্যাক্সের কোথাও উল্লেখ নেই।

এই ডাবল কোলন সিনট্যাক্সের কেবলমাত্র অন্য রেফারেন্স যা আমি এ পর্যন্ত খুঁজে পেয়েছি তা হ'ল এই শেল স্টাইল গাইড (অনুচ্ছেদটি দেখুন Naming Conventions > Function Names) যা "প্যাকেজগুলিতে" ফাংশন নামের জন্য ডাবল কোলন সিনট্যাক্স ব্যবহার করার পরামর্শ দেয় - যেমন mypackage::myfunction(),।

এই ডাবল কোলন সিনট্যাক্সটি ফাংশনটির জন্য বাশ শেলের বৈধ বৈশিষ্ট্যটির নাম দেয়, বা এটি সম্ভবত একটি অনির্ধারিত বৈশিষ্ট্য? যদি এটি বৈধ হয় তবে এটি বাশ ম্যানুয়ালটিতে নথিভুক্ত কোথায়? আমি তাকিয়ে দেখেছি কিন্তু ম্যানুয়ালটিতে আমি এটি সম্পর্কে কিছুই খুঁজে পাচ্ছি না। নিকটস্থ আমি করেছি পাওয়া ব্যবহার ::মধ্যে PATHএনভায়রনমেন্ট ভেরিয়েবল সার্চ-পাথের সাম্প্রতিক কাজ করা যোগ করুন।

EXAMPLE টি

#!/bin/bash
function abc::def() {
    echo "${FUNCNAME[0]}"
}
abc::def

আমি এই স্ক্রিপ্টটি তিনটি ভিন্ন লিনাক্স ডিস্ট্রোজে পরীক্ষা করেছিলাম এবং তিনটিতেই স্ক্রিপ্ট প্রিন্ট করেছিলাম abc::defout


তাদের অনুমতি দেওয়া হয়েছে - স্ট্যাকওভারফ্লো.com
প্রশ্নগুলি


লিঙ্কগুলির জন্য ধন্যবাদ। অস্বাভাবিক. পোস্ট করার আগে আমি "বাশ ডাবল কোলন" (ডাব্লু / ও কোটস) অনুসন্ধান করেছি কিন্তু কিছুই পাইনি। ইতিমধ্যে উত্তর দেওয়া প্রশ্ন পুনরায় জিজ্ঞাসা করার জন্য ক্ষমাপ্রার্থী। ।
জিম ফিশার

উত্তর:


16

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

এটি abc::defবৈধ ভেরিয়েবলের নাম নয় এটি লক্ষণীয়ও হতে পারে :

$ abc::def=foo
bash: abc::def=foo: command not found

4
কেবল এটিকে স্পষ্টভাবে পরিষ্কার করার জন্য - বৈধ পিক্সিকও নয় file::readবা [}{নয়
স্টিভেন পেনি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.