অ্যাপলস্ক্রিপ্ট বনাম বাশ স্ক্রিপ্ট?


13

আমি একটি দীর্ঘ সময়ের উইন্ডোজ "পাওয়ার ব্যবহারকারী" এবং বিকাশকারী যিনি সম্প্রতি ম্যাক ওএস এক্সে যাওয়ার সিদ্ধান্ত নিয়েছেন

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

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


আপনার যদি ফাইল এবং ফোল্ডারগুলির সাথে সম্পর্কিত কাজগুলি "হ্যাজেল" কিনে থাকে তবে এটি সত্যিই একটি শক্তিশালী নিয়ম ভিত্তিক সরঞ্জাম যা খুব কার্যকর। এটি নিয়মের উপর ভিত্তি করে শেল স্ক্রিপ্ট এবং অ্যাপ্লিকেশনগুলিও কিক করতে পারে।
স্টুয়ার্ট উডওয়ার্ড

উত্তর:


17

উভয় শেল- এবং অ্যাপলস্ক্রিপ্ট উভয়ই উপযুক্ত যে কোনও জায়গায় ব্যবহার করা যেতে পারে।

অ্যাপ্লিকেশন এবং ব্যবহারকারী-স্তরের সিস্টেম সুবিধার সাথে কথা বলার সময় অ্যাপল স্ক্রিপ্টগুলি আরও ভাল কাজ করে। (উদাহরণস্বরূপ, আপনি বলতে পারেন tell app "iTunes" to playএবং এটি হবে, বা tell app "Finder" to open the first file of the second window।)

নিম্ন-স্তরের সিস্টেম অবজেক্ট এবং ইউনিক্সি স্টাফের সাথে কথা বলার সময় শেল স্ক্রিপ্টগুলি (আপনি ব্যাশের উল্লেখ করেছেন) আরও ভাল কাজ করে।

এগুলি উভয়ই আন্তঃযোগিতযোগ্য: আপনি অ্যাপলস্ক্রিপ্ট থেকে একটি শেল কমান্ড do shell script "command here"কল করতে পারেন এবং আপনি শেলটি দিয়ে অ্যাপলস্ক্রিপ্ট কোডটি কল করতে পারেন osascript -e "AppleScript"। তদ্ব্যতীত, এই দুইয়ের মধ্যে বেশ কিছুটা ওভারল্যাপ রয়েছে (বিশেষত যখন এটি ফাইল সিস্টেম সিস্টেমের ক্ষেত্রে আসে)।

অ্যাপলস্ক্রিপ্টের চেয়ে অনলাইনে শেল স্ক্রিপ্টিং শেখার জন্য আরও বেশি সংস্থান রয়েছে এবং এটি অ্যাপলস্ক্রিপ্টকে "কেবলমাত্র পঠনযোগ্য" ভাষা হিসাবে খ্যাতি অর্জন করতে সহায়তা করে না (যেমন, পড়ার চেয়ে লেখা শক্ত)।

যাইহোক, স্ক্রিপ্টিংয়ের সর্বাধিক আধুনিক উপায় অটোমেটরের সাথে রয়েছে, যেখানে আপনি ইনস্টল করা বিভিন্ন অ্যাপ্লিকেশন থেকে প্রাক-নির্মিত মডিউলগুলি সহ শেল- বা অ্যাপলস্ক্রিপ্টিং (বা উভয়) ব্যবহার করতে পারেন।


ধন্যবাদ; এটি একটি খুব তথ্যপূর্ণ ওভারভিউ। অ্যাপলস্ক্রিপ্ট পারফরম্যান্সে ভাল শেখার সংস্থানগুলির জন্য আপনার কি কোনও প্রস্তাবনা আছে? (বাশ স্ক্রিপ্টও, যদিও আমি সম্ভবত
এগুলি

3
অ্যাপলস্ক্রিপ্টের কেবলমাত্র পঠনযোগ্য হওয়ার খ্যাতি রয়েছে (কিছুটা অর্জিত); শেল স্ক্রিপ্টগুলি মাঝে মাঝে বর্ণালীটির "কেবল লেখার জন্য" শেষের দিকে ঝুঁকে থাকে।
ড্যানিয়েল

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

@ কেজুনলুক: আহ, যথেষ্ট যথেষ্ট। আপনি প্রথমবারের মতো অ্যাপলস্ক্রিপ্ট কীভাবে শিখলেন ??
নলডোরিন

@ নলডোরিন প্রীতি অনেক পরীক্ষা এবং ত্রুটি এবং গুগল। কিছু জিনিস গুগলের পক্ষে শক্ত, তাই এই কারণেই আমি বইটি কিনেছি।
কাজুনলুকে

8

যদিও স্ক্রিপ্টিং প্রসঙ্গটি অন্য যা কিছু করতে পারে তা করতে পারে (কারণ শেল স্ক্রিপ্টগুলি /usr/bin/osascriptঅ্যাপলস্ক্রিপ্ট আহ্বান করতে কল করতে পারে, এবং অ্যাপলস্ক্রিপ্টের do shell scriptকমান্ড রয়েছে), এমন প্রসঙ্গগুলি রয়েছে যেগুলির জন্য একটি অপরের তুলনায় ভাল উপযুক্ত।

উভয় স্ক্রিপ্টিং ভাষা হ'ল "আঠালো" ভাষা - তারা নিজেরাই ন্যূনতম জিনিসগুলি করতে পারে এবং পরিবর্তে অন্যান্য প্রোগ্রামগুলির সক্ষমতা ডেকে তাদের বেশিরভাগ কার্য সম্পাদন করে। শেল স্ক্রিপ্টগুলি ইউনিক্স পাইপগুলি ব্যবহার করে, যখন অ্যাপলস্ক্রিপ্টটির tell applicationবাক্য গঠন থাকে।

যেখানে তারা ডাইভারেজ করে তা হ'ল অ্যাপল স্ক্রিপ্টগুলি সরাসরি স্ক্রিপ্টযোগ্য অ্যাপ্লিকেশনগুলির সাথে যোগাযোগ করে (প্রায়শই জিইউআই অ্যাপ্লিকেশন), শেল স্ক্রিপ্টগুলি প্রাথমিকভাবে কমান্ড-লাইন প্রোগ্রামগুলির সাথে যোগাযোগ করে (যার মধ্যে কিছু গ্রাফিক ব্যবহারকারী ইন্টারফেসের জন্য আবেদন করতে পারে তবে অনেকে তা করেন না)।

ফাইল পরিচালনার কাজগুলির ক্ষেত্রে, উভয় পদ্ধতিরই কাজ করতে পারে। কেউ Tell Application Finderফাইল অনুলিপি করতে পারেন , বা cpশেল স্ক্রিপ্টে কমান্ড চালাতে পারেন । তাহলে কেন একে অপরকে ব্যবহার করবেন? অবশ্যই কিছু স্ক্রিপ্ট লেখক অন্য ভাষার চেয়ে একটি ভাষার সাথে বেশি পরিচিত এবং এইভাবে সেই সরঞ্জামটি ব্যবহার করতে পছন্দ করবেন। তবে স্ক্রিপ্টটির ব্যবহারকারীদের আরও ভাল বিবেচনা করা উচিত। অ্যাপলস্ক্রিপ্ট প্রায়শই ম্যাক জিইউআই থেকে আহ্বান করা যেতে পারে: অ্যাপলস্ক্রিপ্ট অ্যাপ্লিকেশনটিতে ডাবল-ক্লিক করা বা একটিতে ফাইলগুলি ফেলে দেওয়া, বা অ্যাপলস্ক্রিপ্ট মেনুটি সিস্টেম-প্রশস্ত বা কোনও নির্দিষ্ট প্রোগ্রামের মধ্যে ব্যবহার করা যেতে পারে। মেলগুলির মতো প্রোগ্রামগুলি ফিল্টার করার জন্য আগত বার্তাগুলিতে অ্যাপলস্ক্রিপ্ট চালানোর জন্য সেট আপ করা যেতে পারে। ম্যাকগুলি "ম্যাক-মত" উপায়ে (যেমন জিইউআই থেকে) ব্যবহার করতে অভ্যস্ত ব্যবহারকারীদের জন্য অ্যাপল স্ক্রিপ্টগুলি প্রায়শই বেশি অ্যাক্সেসযোগ্য।

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

যে কোনও ইভেন্টে, উভয়ই আপনার ম্যাকের উপর আরও ভাল নিয়ন্ত্রণ অর্জনের জন্য শক্তিশালী সরঞ্জাম।


ধন্যবাদ; এটি অবশ্যই বিষয়টি স্পষ্ট করে এবং আমার কিছু সন্দেহের সত্যতা নিশ্চিত করে।
নলডোরিন

আমি অনুমান করছি যে Tell Application Finderফাইলগুলি অনুলিপি করা একটি দৃশ্যমান অগ্রগতি বারের সাথে একটি উইন্ডো খুলবে, যখন cpহবে না। এটা কি সঠিক?
ট্রিগ

4

অন্যান্য উত্তরগুলি এই দুটি স্ক্রিপ্টিং কৌশলগুলির পিছনে উদ্দেশ্যটির দুর্দান্ত উচ্চ-স্তরের ওভারভিউ দেয়। আমি কীভাবে সেগুলি ব্যবহার করি তার উদাহরণগুলি আমি আপনাকে দেব।

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

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

আমি কখনও কখনও অ্যাপ্লিক্রিপ্টের মধ্যে থেকে বাশ স্ক্রিপ্টগুলি কল করি, সাধারণত পাঠ্য প্রক্রিয়াকরণের উদ্দেশ্যে (জিআরইপি) বা হালকা ওয়েবসাইট আনার জন্য (কার্ল)। আমি প্রায়শই এই অ্যাপ্লিকেশনটিতে আরও কিছু ডেটা বা একটি ভেরিয়েবল পেতে আমার অ্যাপ্লিকেশনটিতে আরও ব্যবহার করতে এই কৌশলটি ব্যবহার করি।


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

2
হ্যাঁ, আমি যে বইটি থেকে সবচেয়ে বেশি উপকৃত হয়েছিল তা হ'ল ম্যাট নিউবার্গের "অ্যাপলস্ক্রিপ্ট: দ্য সংজ্ঞা নির্দেশিকা"। অ্যাপলের বিকাশকারী ডকুমেন্টেশন ঠিক আছে, এবং রেফারেন্সের জন্য পরামর্শের জন্য মূল্যবান তবে নুবার্গের বইটি বেশ সৎভাবে ভাষাটির শক্তি এবং দুর্বলতা উভয়ই মূল্যায়ন করে। আপনি দেখতে পাবেন যে "প্রাকৃতিক" ব্যাকরণের বিষয়ে অ্যাপলসক্রিপ্টের জেদ খুব স্বাভাবিক নয়, এবং বেশিরভাগ ক্ষেত্রে বিপরীত হবে। কখন এবং কেন হয় তা নিউবার্গ স্পষ্ট করে দেয়।
অ্যাশ

প্রাথমিকভাবে ভাষার দিকে তাকানো থেকে আমি ঠিক এটিই পেয়েছি। মেশিন এবং প্রাকৃতিক ভাষার মধ্যে এই অর্ধপথ বাড়িটি বরং বিশ্রী বলে মনে হচ্ছে। সুপারিশের জন্য চিয়ার্স!
নলডোরিন

3

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

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