আমি ম্যাক ওএসএক্স ডক থেকে চালানোর জন্য কীভাবে শেল স্ক্রিপ্ট সেট আপ করব? মনে হচ্ছে কেবল একটি শর্টকাট তৈরি করা আমার সম্পাদকের মধ্যে ফাইলটি খুলবে। সম্পাদনার জন্য এটি খোলার পরিবর্তে এটি চালানোর জন্য বলার জন্য আমার কোথাও একটি পতাকা স্থাপন করা দরকার?
আমি ম্যাক ওএসএক্স ডক থেকে চালানোর জন্য কীভাবে শেল স্ক্রিপ্ট সেট আপ করব? মনে হচ্ছে কেবল একটি শর্টকাট তৈরি করা আমার সম্পাদকের মধ্যে ফাইলটি খুলবে। সম্পাদনার জন্য এটি খোলার পরিবর্তে এটি চালানোর জন্য বলার জন্য আমার কোথাও একটি পতাকা স্থাপন করা দরকার?
উত্তর:
আপনি একটি একক পদক্ষেপ সহ একটি অটোমেটার ওয়ার্কফ্লো তৈরি করতে পারেন - "শেল স্ক্রিপ্ট চালান"
তারপরে File > Save As
, এবং ফাইল ফর্ম্যাটটি "অ্যাপ্লিকেশন" এ পরিবর্তন করুন। আপনি যখন অ্যাপ্লিকেশনটি খোলেন, এটি শেল স্ক্রিপ্ট পদক্ষেপটি চালাবে, কমান্ডটি কার্যকর করে, এটি শেষ হওয়ার পরে উপস্থিত হবে।
এই সুবিধা এটা হয় সত্যিই করতে সহজ, এবং আপনি খুব সহজেই ব্যবহারকারীর ইনপুট পেতে পারেন (বলুন, ফাইলের একটি গুচ্ছ নির্বাচন), তারপর শেল স্ক্রিপ্ট ইনপুটে এটা পাস (stdin করতে পারেন, অথবা আর্গুমেন্ট হিসাবে)।
(অটোমেটার আপনার /Applications
ফোল্ডারে রয়েছে!)
open -a SomeAppThing.app --args --etc=2
এটি মনোযোগ দেওয়া উচিত। বিকল্পভাবে আপনি osascript -e 'tell application "Google Chrome" to activate'
আপনার যদি টার্মিনাল উইন্ডোটির প্রয়োজন না হয়, আপনি কেবল একটি শেল স্ক্রিপ্ট তৈরি Example
করে ফাইলের নাম পরিবর্তন করে কোনও এক্সিকিউটেবল ফাইলকে অ্যাপ্লিকেশন বানাতে পারেন Example.app/Contents/MacOS/Example
। আপনি এই নতুন অ্যাপ্লিকেশনটি অন্য যে কোন একটির মতো আপনার ডকে রেখে দিতে পারেন এবং একটি ক্লিক দিয়ে এটি সম্পাদন করতে পারেন।
দ্রষ্টব্য: অ্যাপ্লিকেশনটির নামটি অবশ্যই স্ক্রিপ্টের নামের সাথে মেলে। সুতরাং শীর্ষ স্তরের ডিরেক্টরিটি থাকতে হবে Example.app
এবং Contents/MacOS
উপ - ডিরেক্টরিতে স্ক্রিপ্টটির নামকরণ করতে হবে Example
, এবং স্ক্রিপ্টটি সম্পাদনযোগ্য হতে হবে।
আপনার যদি টার্মিনাল উইন্ডোটি প্রদর্শনের দরকার হয় তবে আমার কাছে সহজ সমাধান নেই। আপনি সম্ভবত অ্যাপলস্ক্রিপ্ট দিয়ে কিছু করতে পারেন তবে এটি খুব পরিষ্কার নয়।
example.sh.app
, না শুধুমাত্র example.app
। এগুলি না মিলে ক্ষতিগ্রস্থ অ্যাপ্লিকেশন সম্পর্কে আপনি একটি সতর্কতা পেয়ে যাবেন
.app
এবং সেই কাঠামোর সাথে, এটি কার্যকর করা অ্যাপ্লিকেশন হিসাবে বিবেচিত হবে। আপনি যদি ফাইন্ডারে সেই ফোল্ডারের বিষয়বস্তুগুলি দেখতে চান তবে আপনাকে এটিতে ডানদিকের ক্লিক করতে হবে এবং "প্যাকেজ বিষয়বস্তু দেখুন" নির্বাচন করতে হবে (কারণ এটিতে ডাবল-ক্লিক করলে অ্যাপ্লিকেশনটি চালিত হবে)। টার্মিনালে, এটি কেবল একটি ফোল্ডার হিসাবে উপস্থিত হবে। (আমি নিশ্চিত না যে ফাইন্ডার আপনাকে নিজেই ফোল্ডারটির নাম। অ্যাপ্লিকেশন করতে দেয় কিনা; আপনার টার্মিনালে পুনরায় নামকরণের প্রয়োজন হতে পারে))
ওএসএক্স ম্যাভেরিক্সে:
আপনার শেল স্ক্রিপ্ট সম্পাদনযোগ্য করুন:
chmod +x your-shell-script.sh
.app
প্রত্যয় পেতে আপনার স্ক্রিপ্টটির নাম পরিবর্তন করুন :
mv your-shell-script.sh your-shell-script.app
আপনার স্ক্রিপ্টটির .sh
প্রত্যয়টির পুনরায় নামকরণ করুন :
mv your-shell-script.app your-shell-script.sh
এখন আপনি যখন ডকের স্ক্রিপ্টে ক্লিক করবেন তখন একটি টার্মিনাল উইন্ডো পপ আপ হবে এবং আপনার স্ক্রিপ্টটি কার্যকর করবে।
বোনাস: আপনার স্ক্রিপ্টটি শেষ হয়ে গেলে টার্মিনালটি বন্ধ exit 0
করতে, শেষের দিকে যুক্ত করুন এবং টার্মিনাল সেটিংসটিকে "পরিষ্কারভাবে বাইরে গেলে শেলটি বন্ধ করুন" যেমন এটি এই উত্তরটি করতে বলে ।
আমি জানি এটি পুরানো তবে এটি অন্যের পক্ষে সহায়ক হলে:
আপনার যদি কোনও স্ক্রিপ্ট চালানোর প্রয়োজন হয় এবং টার্মিনালটি পপআপ করতে চান যাতে আপনি অ্যাবিস নাইটের মত ফলাফল দেখতে পারেন এবং এক্সটেনশনটিকে .কমেন্ডে পরিবর্তন করতে পারেন the আপনি যদি এটিতে ডাবল ক্লিক করেন এটি একটি টার্মিনাল উইন্ডোটি খুলবে এবং রান করবে।
অটোমেটর বা অ্যাপলস্ক্রিপ্ট থেকে চালানোর জন্য আমার এটির দরকার ছিল। সুতরাং এটি একটি নতুন টার্মিনালটি খোলার জন্য আমি "রান শেল স্ক্রিপ্ট" থেকে চালিত কমান্ডটিটি ছিল "ওপেন মাইশেলস্ক্রিপ্ট.কম্যান্ড" এবং এটি একটি নতুন টার্মিনালে খোলা হয়েছিল।
যতক্ষণ না আপনার স্ক্রিপ্টটি এক্সিকিউটেবল এবং কোনও এক্সটেনশন না থাকে আপনি এটিকে ডকের ডানদিকে (ডকুমেন্ট সাইড) এর মতো করে টেনে আনতে পারবেন এবং সম্পাদক খোলার পরিবর্তে ক্লিক করলে এটি টার্মিনাল উইন্ডোতে চলবে।
যদি আপনি একটি এক্সটেনশন (foo.sh এর মতো) পেতে চান তবে আপনি ফাইন্ডারে ফাইল তথ্য উইন্ডোতে গিয়ে নির্দিষ্ট স্ক্রিপ্টের যে কোনও ডিফল্ট অ্যাপ্লিকেশনটি যা তা থেকে পরিবর্তন করতে পারেন (টেক্সটএডিট, টেক্সটমেট, আপনার কম্পিউটারে যে কোনও ডিফল্ট সেট করা আছে) টার্মিনাল .sh ফাইল)। এটি কেবলমাত্র একটি পাঠ্য সম্পাদককে খোলার পরিবর্তে সম্পাদন করবে। আবার, আপনাকে এটিকে ডকের ডান দিকে টানতে হবে।
আমি মনে করি এই থ্রেডটি সহায়ক হতে পারে: http://forums.macosxhints.com/archive/index.php/t-70973.html
প্যারাফ্রেজ করতে, আপনি। কম্যান্ড এক্সটেনশনের সাথে এটির নাম পরিবর্তন করতে পারেন বা শেলটি চালানোর জন্য একটি অ্যাপলস্ক্রিপ্ট তৈরি করতে পারেন।
জো যেমন উল্লেখ করেছে, শেল স্ক্রিপ্ট তৈরি করে এবং তারপরে শেল স্ক্রিপ্টটি কল করার জন্য অ্যাপসক্রিপ্ট স্ক্রিপ্ট তৈরি করা এটি সম্পন্ন করবে এবং এটি বেশ কার্যকর y
আপনার প্রিয় পাঠ্য সম্পাদকটিতে শেল স্ক্রিপ্ট তৈরি করুন, উদাহরণস্বরূপ:
mono "/Volumes/Media/~Users/me/Software/keepass/keepass.exe"
(এটি মনো-ফ্রেমওয়ার্ক ব্যবহার করে ডাব্লু 32 এক্সিকিউটেবল চালায়)
শেল স্ক্রিপ্ট সংরক্ষণ করুন, আমার উদাহরণ হিসাবে "স্টার্টকিপাস.শ"
অ্যাপলস্ক্রিপ্ট সম্পাদক খুলুন, এবং শেল স্ক্রিপ্ট কল করুন
do shell script "sh /Volumes/Media/~Users/me/Software/StartKeepass.sh" user name "<enter username here>" password "<Enter password here>" with administrator privileges
do shell script
- বহিরাগত শেল কমান্ড কল করতে অ্যাপলস্ক্রিপ্ট কমান্ড"sh ...."
- এটি আপনার শেল স্ক্রিপ্ট (সম্পূর্ণ পাথ) প্রথম ধাপে তৈরি হয়েছে (আপনি সরাসরি কমান্ডও চালাতে পারেন, আমি শেল স্ক্রিপ্টটি বাদ দিতে পারি এবং আমার মনো কমান্ডটি এখানে চালাতে পারি)user name
- আপনি নির্দিষ্ট ব্যবহারকারী হিসাবে কমান্ডটি চালাতে চান অ্যাপ্লিক্রিপ্টে ঘোষণা করে"<enter username here>
- আপনার ব্যবহারকারীর নাম (উক্তি রেখে) প্রাক্তন "জোশ" দিয়ে প্রতিস্থাপন করুনpassword
- আপনার পাসওয়ার্ড আপেলস্ক্রিপ্ট ঘোষণা"<enter password here>"
- আপনার পাসওয়ার্ডের সাথে প্রতিস্থাপন করুন (উক্তিগুলি সংরক্ষণ করে) প্রাক্তন "মাইপাস"with administrative privileges
- ঘোষণা করে যে আপনি প্রশাসক হিসাবে চালাতে চানআমার অ্যাপ্লিকেশনটি ফাইলনাম.এসসিপি হিসাবে সংরক্ষণ করুন, আমার ক্ষেত্রে রানকিপাস.এসসিপি
হিসাবে সংরক্ষণ করুন ... আপনার অ্যাপ্লিক্রিপ্ট এবং ফাইল ফর্ম্যাটটি প্রয়োগে পরিবর্তন করুন, ফলস্বরূপ আমার ক্ষেত্রে রানকিপাস.এপ
আপনার অ্যাপ্লিকেশন ফোল্ডারে আপনার অ্যাপ্লিকেশন ফাইলটি অনুলিপি করুন
স্ক্রিপ্ট সম্পাদকটিতে:
do shell script "/full/path/to/your/script -with 'all desired args'
"
অ্যাপ্লিকেশন বান্ডিল হিসাবে সংরক্ষণ করুন।
যতক্ষণ আপনি যা করতে চান যতক্ষণ না স্ক্রিপ্টের প্রভাব পাওয়া যায়, এটি ঠিকঠাক কাজ করবে। আপনি STDOUT বা STDERR দেখতে পাবেন না।