ওএস এক্স ডক থেকে শেল স্ক্রিপ্টগুলি কার্যকর করা হচ্ছে?


160

আমি ম্যাক ওএসএক্স ডক থেকে চালানোর জন্য কীভাবে শেল স্ক্রিপ্ট সেট আপ করব? মনে হচ্ছে কেবল একটি শর্টকাট তৈরি করা আমার সম্পাদকের মধ্যে ফাইলটি খুলবে। সম্পাদনার জন্য এটি খোলার পরিবর্তে এটি চালানোর জন্য বলার জন্য আমার কোথাও একটি পতাকা স্থাপন করা দরকার?


2
শুধুমাত্র অবতারের জন্যই +1 করা উচিত, যদিও আমি বিষয়টিও পছন্দ করি।
ম্যাট ব্যানার

আপনি দ্বিতীয়টি @ উইলকোতে স্যুইচ গৃহীত উত্তরগুলি বিবেচনা করতে চাইতে পারেন। আমি মনে করি এটি আরও ভাল উত্তর।
ধূসর

উত্তর:


190

আপনি একটি একক পদক্ষেপ সহ একটি অটোমেটার ওয়ার্কফ্লো তৈরি করতে পারেন - "শেল স্ক্রিপ্ট চালান"

তারপরে File > Save As, এবং ফাইল ফর্ম্যাটটি "অ্যাপ্লিকেশন" এ পরিবর্তন করুন। আপনি যখন অ্যাপ্লিকেশনটি খোলেন, এটি শেল স্ক্রিপ্ট পদক্ষেপটি চালাবে, কমান্ডটি কার্যকর করে, এটি শেষ হওয়ার পরে উপস্থিত হবে।

এই সুবিধা এটা হয় সত্যিই করতে সহজ, এবং আপনি খুব সহজেই ব্যবহারকারীর ইনপুট পেতে পারেন (বলুন, ফাইলের একটি গুচ্ছ নির্বাচন), তারপর শেল স্ক্রিপ্ট ইনপুটে এটা পাস (stdin করতে পারেন, অথবা আর্গুমেন্ট হিসাবে)।

(অটোমেটার আপনার /Applicationsফোল্ডারে রয়েছে!)

ওয়ার্কফ্লো উদাহরণ


6
@ ডিবিআর, জিইউআই বোতাম পুশার! :) খালি মজা করছি, এটাই ভালো পরামর্শ!
উইলসায়হাট

হ্যাঁ, এটি একটি দুর্দান্ত পরামর্শ ছিল :) আমি এমনকি আমার কিছু অ্যাপ্লিকেশানের জন্য অটোমেটার ক্রিয়াও লিখেছি এবং আমি এখনও এর মতো সময়ে এটি ভুলে যাই :)
জেসন কোকো

আমি এটি নোহুপের সাথে কাজ করতে পারি না, একটি লা "নোহুপ / ইউএসআর / বিন / মাইক্রিপ্ট &; অস্বীকৃত -a && প্রস্থান 0"। একটি স্ক্রিপ্ট চালানোর জন্য আমার তত্ক্ষণাত অ্যাপ্লিকেশন / ওয়ার্কফ্লো দরকার এবং অবিলম্বে প্রস্থান করা উচিত। কোন ধারনা? :-)
hour:০২-এ ঘন্টার ব্যাক

3
@ মার্টিনাউ আপনি যদি অ্যাপ্লিকেশনটি খোলার মাধ্যমে open -a SomeAppThing.app --args --etc=2এটি মনোযোগ দেওয়া উচিত। বিকল্পভাবে আপনি osascript -e 'tell application "Google Chrome" to activate'
এপসক্রিপ্ট

1
দ্রষ্টব্য: যদি আপনার স্ক্রিপ্টটি কোনও জিইউআই অ্যাপ্লিকেশন চালু করে যা কিছু সময়ের জন্য উন্মুক্ত থাকে, অ্যাপটি বন্ধ না হওয়া পর্যন্ত এটি টাস্কবারে একটি ক্রমাগত স্পিনিং গিয়ার আইকন দেখায়। চারপাশের একটি কাজ হ'ল স্ক্রিপ্টের প্রবর্তন-লাইনে `&> / dev / null & add যুক্ত করা যাতে অটোমেটর আশেপাশে অপেক্ষা না করে।
ইওল

50

আপনার যদি টার্মিনাল উইন্ডোটির প্রয়োজন না হয়, আপনি কেবল একটি শেল স্ক্রিপ্ট তৈরি Exampleকরে ফাইলের নাম পরিবর্তন করে কোনও এক্সিকিউটেবল ফাইলকে অ্যাপ্লিকেশন বানাতে পারেন Example.app/Contents/MacOS/Example। আপনি এই নতুন অ্যাপ্লিকেশনটি অন্য যে কোন একটির মতো আপনার ডকে রেখে দিতে পারেন এবং একটি ক্লিক দিয়ে এটি সম্পাদন করতে পারেন।

দ্রষ্টব্য: অ্যাপ্লিকেশনটির নামটি অবশ্যই স্ক্রিপ্টের নামের সাথে মেলে। সুতরাং শীর্ষ স্তরের ডিরেক্টরিটি থাকতে হবে Example.appএবং Contents/MacOSউপ - ডিরেক্টরিতে স্ক্রিপ্টটির নামকরণ করতে হবে Example, এবং স্ক্রিপ্টটি সম্পাদনযোগ্য হতে হবে।

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


1
শেল স্ক্রিপ্টে আর্গুমেন্ট হিসাবে ফাইলগুলি পাস করার কোনও সহজ উপায় আছে কিনা তা আপনি জানেন না? ফাইলগুলির জন্য "ওপেন উইথ ..." ব্যবহার করে খোলার জন্য।
Fuzzy76

9
যে কেউ এটি করার চেষ্টা করছেন - অ্যাপ্লিকেশনটির নামটি অবশ্যই স্ক্রিপ্টের নামের সাথে মেলে। সুতরাং এটি সত্যিই হতে হবে example.sh.app, না শুধুমাত্র example.app। এগুলি না মিলে ক্ষতিগ্রস্থ অ্যাপ্লিকেশন সম্পর্কে আপনি একটি সতর্কতা পেয়ে যাবেন
কিপ করুন

1
স্পষ্ট করে বলার জন্য - আমি একটি ওএসএক্স নুব - আপনি বোঝাতে চাইছেন যে ঠিক যেমন একটি উদাহরণস্বরূপ এটিতে প্রদর্শিত স্ক্রিপ্ট ফাইলের সাথে উদাহরণ হিসাবে প্রদর্শিত একটি ফোল্ডার কাঠামো তৈরি করুন?
মার্টিনো ২

2
@ মার্টিনাউ হ্যাঁ, এটা ঠিক যদি আপনি এমন একটি ফোল্ডার তৈরি করেন যার নাম শেষ হয় .appএবং সেই কাঠামোর সাথে, এটি কার্যকর করা অ্যাপ্লিকেশন হিসাবে বিবেচিত হবে। আপনি যদি ফাইন্ডারে সেই ফোল্ডারের বিষয়বস্তুগুলি দেখতে চান তবে আপনাকে এটিতে ডানদিকের ক্লিক করতে হবে এবং "প্যাকেজ বিষয়বস্তু দেখুন" নির্বাচন করতে হবে (কারণ এটিতে ডাবল-ক্লিক করলে অ্যাপ্লিকেশনটি চালিত হবে)। টার্মিনালে, এটি কেবল একটি ফোল্ডার হিসাবে উপস্থিত হবে। (আমি নিশ্চিত না যে ফাইন্ডার আপনাকে নিজেই ফোল্ডারটির নাম। অ্যাপ্লিকেশন করতে দেয় কিনা; আপনার টার্মিনালে পুনরায় নামকরণের প্রয়োজন হতে পারে))
জেরেমি ব্যাংকস

1
আমি কেবল এটি চেষ্টা করেছি এবং এর মধ্যে এল ক্যাপিটেনে (10.11) একটি ত্রুটি পেয়েছি: "আপনি খুলতে পারবেন না .... কারণ পাওয়ারপিসি অ্যাপ্লিকেশনগুলি আর সমর্থিত নয়।" : ডি এটি বেশ আকর্ষণীয়!
অ্যালেনহ

26

ওএসএক্স ম্যাভেরিক্সে:

  1. আপনার শেল স্ক্রিপ্ট তৈরি করুন।
  2. আপনার শেল স্ক্রিপ্ট সম্পাদনযোগ্য করুন:

    chmod +x your-shell-script.sh
  3. .appপ্রত্যয় পেতে আপনার স্ক্রিপ্টটির নাম পরিবর্তন করুন :

    mv your-shell-script.sh your-shell-script.app
  4. স্ক্রিপ্টটি ওএসএক্স ডকে টেনে আনুন।
  5. আপনার স্ক্রিপ্টটির .shপ্রত্যয়টির পুনরায় নামকরণ করুন :

    mv your-shell-script.app your-shell-script.sh
  6. ফাইন্ডারে ফাইলটি ডান-ক্লিক করুন এবং "তথ্য পান" বিকল্পটি ক্লিক করুন।
  7. উইন্ডোটির নীচে, টার্মিনাল দিয়ে শেল স্ক্রিপ্টটি খোলার জন্য সেট করুন।

এখন আপনি যখন ডকের স্ক্রিপ্টে ক্লিক করবেন তখন একটি টার্মিনাল উইন্ডো পপ আপ হবে এবং আপনার স্ক্রিপ্টটি কার্যকর করবে।

বোনাস: আপনার স্ক্রিপ্টটি শেষ হয়ে গেলে টার্মিনালটি বন্ধ exit 0করতে, শেষের দিকে যুক্ত করুন এবং টার্মিনাল সেটিংসটিকে "পরিষ্কারভাবে বাইরে গেলে শেলটি বন্ধ করুন" যেমন এটি এই উত্তরটি করতে বলে


ভাল লাগল, এটি আমার পক্ষে কাজ করেছে, আইকনটি অবাক করার কোনও উপায়েই। এফওয়াইআই: অন্যান্য পদক্ষেপ 7 ফাইলটিকে উল্লেখ করছে মেনু আইটেমটি নয় ...
মাইক কিউ

ভাল উপায়! খালি টার্মিনাল সহ সমস্ত .শ।
iHTCboy

@ stiemannkj1, অ্যাপটি চলাকালীন এটি কি আইকনটি দেখায়? আড়াল করার কি আছে?
পেসিয়ার 21

@ পেসারিয়র, দুঃখিত, আমি আর ওএসএক্সে নেই (লিনাক্সে স্যুইচ করেছি :))। আপনি জেরেমি ব্যাঙ্কের উত্তরটি চেষ্টা করতে চাইতে পারেন । আমার অন্য কোনও ধারণাগুলি নেই এবং যেহেতু আমার কাছে ওএসএক্স নেই, তাই আইকনটি দেখানোর / দেখানোর / আড়াল করার জন্য আমি কোনও কিছুতে পরীক্ষা বা
গণ্ডগোল

17

আমি জানি এটি পুরানো তবে এটি অন্যের পক্ষে সহায়ক হলে:

আপনার যদি কোনও স্ক্রিপ্ট চালানোর প্রয়োজন হয় এবং টার্মিনালটি পপআপ করতে চান যাতে আপনি অ্যাবিস নাইটের মত ফলাফল দেখতে পারেন এবং এক্সটেনশনটিকে .কমেন্ডে পরিবর্তন করতে পারেন the আপনি যদি এটিতে ডাবল ক্লিক করেন এটি একটি টার্মিনাল উইন্ডোটি খুলবে এবং রান করবে।

অটোমেটর বা অ্যাপলস্ক্রিপ্ট থেকে চালানোর জন্য আমার এটির দরকার ছিল। সুতরাং এটি একটি নতুন টার্মিনালটি খোলার জন্য আমি "রান শেল স্ক্রিপ্ট" থেকে চালিত কমান্ডটিটি ছিল "ওপেন মাইশেলস্ক্রিপ্ট.কম্যান্ড" এবং এটি একটি নতুন টার্মিনালে খোলা হয়েছিল।


ধন্যবাদ, ধন্যবাদ! এখন স্ক্রিপ্টটি সম্পূর্ণ হলে এটি একটি নিখুঁত সমাধান টার্মিনাল উইন্ডোটি বন্ধ করার উপায় হতে পারে এটি একটি নিখুঁত সমাধানের প্রয়োজন need
পিটার এম

1
ভাল যদি আপনার টার্মিনাল পছন্দগুলিতে নির্বাচিত প্রস্থানের নিকটে উইন্ডো থাকে তবে আপনি আপনার স্ক্রিপ্টে প্রস্থান কমান্ডটি যুক্ত করতে পারেন এবং আপনার যা চান তা আপনার কাছে থাকবে।
জেসন থলস্ট্রাপ

7

যতক্ষণ না আপনার স্ক্রিপ্টটি এক্সিকিউটেবল এবং কোনও এক্সটেনশন না থাকে আপনি এটিকে ডকের ডানদিকে (ডকুমেন্ট সাইড) এর মতো করে টেনে আনতে পারবেন এবং সম্পাদক খোলার পরিবর্তে ক্লিক করলে এটি টার্মিনাল উইন্ডোতে চলবে।

যদি আপনি একটি এক্সটেনশন (foo.sh এর মতো) পেতে চান তবে আপনি ফাইন্ডারে ফাইল তথ্য উইন্ডোতে গিয়ে নির্দিষ্ট স্ক্রিপ্টের যে কোনও ডিফল্ট অ্যাপ্লিকেশনটি যা তা থেকে পরিবর্তন করতে পারেন (টেক্সটএডিট, টেক্সটমেট, আপনার কম্পিউটারে যে কোনও ডিফল্ট সেট করা আছে) টার্মিনাল .sh ফাইল)। এটি কেবলমাত্র একটি পাঠ্য সম্পাদককে খোলার পরিবর্তে সম্পাদন করবে। আবার, আপনাকে এটিকে ডকের ডান দিকে টানতে হবে।


1
দ্রষ্টব্য : এটি ওএস এক্স 10.10 ইওসোমাইটে চ্যাম্পের মতো কাজ করে। আমি 10.9
ব্রায়ান অ্যাশ

1
10.11 এ কাজ করে। ধন্যবাদ!
ইয়াসাইন ইমুনাচেন

10.12 তেও কাজ করে! সম্ভবত 10.9 সম্পর্কে আমার মন্তব্যটি ভুল ছিল তবে আমি লক্ষ্য করেছি যে আপনাকে এটি বিভক্তির নীচের ডকের অংশে টেনে আনতে হবে তা নিশ্চিত করা দরকার। দুর্ভাগ্যক্রমে আমার কাছে ১০.৯ পুনরায় পরীক্ষা করার কোনও উপায় নেই।
stiemannkj1

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

5

আমি মনে করি এই থ্রেডটি সহায়ক হতে পারে: http://forums.macosxhints.com/archive/index.php/t-70973.html

প্যারাফ্রেজ করতে, আপনি। কম্যান্ড এক্সটেনশনের সাথে এটির নাম পরিবর্তন করতে পারেন বা শেলটি চালানোর জন্য একটি অ্যাপলস্ক্রিপ্ট তৈরি করতে পারেন।


কমপক্ষে স্নো চিতাবাঘে, কোনও স্ক্রিপ্টে একটি কম্যান্ড এক্সটেনশন যুক্ত করা আপনি এটি ডাবল-ক্লিক করলে এটি টার্মিনালে চালিত করে তোলে, তবে কোনও কারণে আপনি এখনও এটিকে ডকের মধ্যে টানতে পারবেন না। যদিও ডিবিআর এবং জেরেমির পরামর্শ উভয়ই আমার পক্ষে কাজ করেছিল।
জো লিস

5

জো যেমন উল্লেখ করেছে, শেল স্ক্রিপ্ট তৈরি করে এবং তারপরে শেল স্ক্রিপ্টটি কল করার জন্য অ্যাপসক্রিপ্ট স্ক্রিপ্ট তৈরি করা এটি সম্পন্ন করবে এবং এটি বেশ কার্যকর y

শেল স্ক্রিপ্ট

  1. আপনার প্রিয় পাঠ্য সম্পাদকটিতে শেল স্ক্রিপ্ট তৈরি করুন, উদাহরণস্বরূপ:

    mono "/Volumes/Media/~Users/me/Software/keepass/keepass.exe"

    (এটি মনো-ফ্রেমওয়ার্ক ব্যবহার করে ডাব্লু 32 এক্সিকিউটেবল চালায়)

  2. শেল স্ক্রিপ্ট সংরক্ষণ করুন, আমার উদাহরণ হিসাবে "স্টার্টকিপাস.শ"

অ্যাপল স্ক্রিপ্ট

  1. অ্যাপলস্ক্রিপ্ট সম্পাদক খুলুন, এবং শেল স্ক্রিপ্ট কল করুন

    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 - ঘোষণা করে যে আপনি প্রশাসক হিসাবে চালাতে চান

আপনার .APP তৈরি করুন

  1. আমার অ্যাপ্লিকেশনটি ফাইলনাম.এসসিপি হিসাবে সংরক্ষণ করুন, আমার ক্ষেত্রে রানকিপাস.এসসিপি

  2. হিসাবে সংরক্ষণ করুন ... আপনার অ্যাপ্লিক্রিপ্ট এবং ফাইল ফর্ম্যাটটি প্রয়োগে পরিবর্তন করুন, ফলস্বরূপ আমার ক্ষেত্রে রানকিপাস.এপ

  3. আপনার অ্যাপ্লিকেশন ফোল্ডারে আপনার অ্যাপ্লিকেশন ফাইলটি অনুলিপি করুন


5

স্ক্রিপ্ট সম্পাদকটিতে:

do shell script "/full/path/to/your/script -with 'all desired args'"

অ্যাপ্লিকেশন বান্ডিল হিসাবে সংরক্ষণ করুন।

যতক্ষণ আপনি যা করতে চান যতক্ষণ না স্ক্রিপ্টের প্রভাব পাওয়া যায়, এটি ঠিকঠাক কাজ করবে। আপনি STDOUT বা STDERR দেখতে পাবেন না।


2
আমি পরামর্শ দেব: "একটি অ্যাপ্লিকেশন BUNDLE হিসাবে সংরক্ষণ করুন"। অ্যাপ্লিকেশনগুলির তুলনায় বান্ডিলগুলি খুব দ্রুত লঞ্চ হয়।
জেমস

-3

কেউ লিখেছেন ...

আমি টার্মিনাল দিয়ে খোলার জন্য কেবল ".sh" এ শেষ হওয়া সমস্ত ফাইল সেট করেছি। এটি দুর্দান্ত কাজ করে এবং আপনি চালাতে চান এমন প্রতিটি শেল স্ক্রিপ্টের নাম পরিবর্তন করতে হবে না।

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