হোম / বিন থেকে স্ক্রিপ্ট চালান যা উত্স আদেশ দেয়


0

আমার কাছে একটি স্ক্রিপ্ট আছে, "স্ক্রিপ্ট 1.sh" বলুন, sourceএটি অন্য স্ক্রিপ্টে কল করে। আমি স্ক্রিপ্ট 1.sh ~/binফোল্ডারে রাখতে চাই যাতে আমি পুরো পথটি টাইপ না করে যে কোনও জায়গা থেকে এটি সম্পাদন করতে পারি।

তবে অবশ্যই এটি কার্যকর sourceকরা পছন্দসই হিসাবে সঞ্চালনের কারণ হবে না ।

এই কাছাকাছি কোন উপায় আছে?


আপনি যদি অন্য স্ক্রিপ্টটিকে পুরো পথ দিয়ে উত্স করেন তবে এটি প্রত্যাশার মতো কাজ করবে, তাই না?
এমটাক

@ এমটাক ইন স্ক্রিপ্ট 1.শ :, source ~/path/to/file/script2.shনা, একবার স্ক্রিপ্ট 1.sh পরিবেশের ওয়ার সেট থেকে বেরিয়ে / স্ক্রিপ্ট 2 এ রফতানি করে সঠিকভাবে সেট করা হয় না
মাইক ড্যানিবয়

1
sourceকমান্ড অনুসন্ধানসমূহ $PATHডিরেক্টরি (কোন ছাড়া ফাইল খুঁজে পেতে /নামে), কিন্তু (1) যদি না bashPOSIX-অনুবর্তী পতাকা বর্তমান ডিরেক্টরী অনুসন্ধান করা হবে আছে; এবং (2) অ-এক্সিকিউটেবল ফাইলগুলি খুঁজে পাওয়া ও চালানো হবে, সুতরাং আপনারা চাইলে একই নামের একটি অ-এক্সিকিউটেবল ফাইলটি $PATHডিরেক্টরি ক্রমটিতে প্রথম পাওয়া গেলে চালানো হবে ।
এএফএইচ

@ এমটাক-এ আপনার মন্তব্যের জবাবে, সেট করা যে কোনও ভেরিয়েবলগুলি source script2.shপাওয়া script1.shযাবে তবে কলিং শেলটিতে পাওয়া যাবে না যতক্ষণ না script1.shএটি চাওয়া হয় source
এএফএইচ

@ এএফএইচ আমি এখন দেখতে পাচ্ছি তবে এটি বিনের মধ্যে থাকা ট্যাব-সম্পূর্ণরূপে অনুমতি দেয় না। এটি হওয়ার কোনও উপায় কি আপনি জানেন? এক্ষেত্রে এই সমাধানটি আমি ব্যবহার করব। ধন্যবাদ।
মাইক ড্যানিবয়

উত্তর:


2

অন্যান্য স্ক্রিপ্টে আপনার মন্তব্যটি দেখে, আমি ধরে নিচ্ছি আপনি স্ক্রিপ্ট 2.sh এ এনভির ভারসাম সেট করতে চান এবং স্ক্রিপ্ট 1.শ চলমান শেষ হয়ে গেলে সেগুলি এখনও কার্যকর হবে have

আমি মনে করি এই স্ট্যাকওভারফ্লো প্রশ্নটির শীর্ষস্থানীয় উত্তর আপনাকে যা দেবে তা আপনাকে দেবে:

https://stackoverflow.com/questions/16618071/can-i-export-a-variable-to-the-environment-from-a-bash-script-without-sourcing-i#16619261


0

আমার নিজের স্ক্রিপ্টগুলির দিকে তাকানো, অনুরোধ করা স্ক্রিপ্টটির $0সম্পূর্ণ সমাধান হওয়া নামের ভিত্তিতে দুটি প্রকরণ :

  1. সাধারণ কেস: বর্তমান স্ক্রিপ্টের ডিরেক্টরিটি পান এবং উত্স স্ক্রিপ্টটি সনাক্ত করতে এটি ব্যবহার করুন:

    . $(dirname $0)/sourcedscript
  2. পর্যাপ্ত নামকরণের সম্মেলনের সাথে (স্ক্রিপ্ট foobarসম্পাদনা করে foobar-setupস্ক্রিপ্টটি কাস্টমাইজ করা যায় :

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