sh শেলের মধ্যে সোর্স কমান্ড পাওয়া যায় নি


146

আমার কাছে একটি স্ক্রিপ্ট রয়েছে যা shশেল ব্যবহার করে । sourceকমান্ডটি ব্যবহার করে এমন লাইনে আমি একটি ত্রুটি পেয়েছি । মনে sourceহচ্ছে এটি আমার shশেলের অন্তর্ভুক্ত নয় ।

যদি আমি স্পষ্টভাবে sourceশেল থেকে চালানোর চেষ্টা করি তবে আমি পেয়ে যাব:

sh: 1: source: not found

আমার কি কোনওভাবে "উত্স" ইনস্টল করা উচিত? আমার কি ভুল সংস্করণ আছে sh?


1
কেউ যুক্তিযুক্তভাবে বলতে পারে যে শেল যা সমর্থন করে sourceএটি একটি "ভুল সংস্করণ"।
— উইলিয়াম পার্সেল

1
ত্রুটি বার্তার source: not foundঅর্থ হ'ল sourceকমান্ডটি সঠিকভাবে মূল্যায়ন করা হয়েছিল, তবে এটি পড়ার জন্য যে ফাইলটি থাকা উচিত ছিল তা বিদ্যমান নেই।
— সাইমন রিখটার

4
এটি "ইনস্টল" করা সম্ভব নয় source কারণ এটি শেলের একটি বৈশিষ্ট্য। এটি বাহ্যিক আদেশ হিসাবে প্রয়োগ করা যায় না।
— ক্রিস্টোফার শুল্টজ

উত্তর:


151

/bin/shসাধারণত শেলটি নকল করার চেষ্টা করা অন্য কোনও শেল। অনেক বিতরণ এর জন্য /bin/bashব্যবহার করে sh, এটি সমর্থন করে source। উবুন্টুতে, যদিও /bin/dashব্যবহৃত হয় যা সমর্থন করে না source। বেশিরভাগ শেল এর .পরিবর্তে ব্যবহার করে source। আপনি যদি স্ক্রিপ্টটি সম্পাদনা করতে না পারেন, এটি চালিত শেলটি পরিবর্তন করার চেষ্টা করুন।


2
ধন্যবাদ! উবুন্টুতে / বিন / শের পরিবর্তে / বিন / বাশ কাজ করে! আমি কৌতূহল বোধ করি কেন, উবুন্টু বাশ এর অর্থ কি শ?
— মিলাদ

1
@ মিলাদ: সাম্প্রতিক উবুন্টাসে /bin/shকল করুন /bin/dash। Ditionতিহ্যগতভাবে, /bin/shবলা /bin/bashহয় sh- সামঞ্জস্য মোড।
— চোরোবা

@ মিলাদ আমি মনে করি এটি উবুন্টু 14.04 এ কাজ করে না। আপনার ওএস সংস্করণটি কী?
— রেজা আমেরি

1
হতে পারে সাহায্য হিসাবে পরিচিত - আপনার যদি ক্যাসকেড স্ক্রিপ্ট থাকে তবে সমস্ত "sh -> বাশ" এর নতুন নাম দিন। ধন্যবাদ. :-)
— বিজি ব্রুনো

দুর্ভাগ্যক্রমে এই সমস্যাটি কীভাবে সমাধান করা যায় তা আমার কাছে তাত্ক্ষণিক স্বজ্ঞাত ছিল না তবে এটি আমাকে সঠিক পথে চালিত করেছিল। আমাকে SHELL := /bin/bashআমার মেকফিলের শীর্ষে যুক্ত করতে হয়েছিল।
— anon58192932

136

বোর্ন শেল (sh) এ, ব্যবহার করুন। একটি ফাইল উত্স কমান্ড

. filename

আমাকে সত্যই স্ক্রিপ্টটি পরিবর্তন করার অনুমতি নেই, এটি একটি রেডহ্যাট সার্ভারে দুর্দান্ত চলছে। তবে সেই সার্ভারে উত্সটি sh
— মিলাদ

2
এটি থাকলে sourceতা কঠোরভাবে হয় না sh।
— ট্রিপলি

4
জেনকিন্সে এই ধরণের সমস্যা ছিল ("সিক্রেট ফাইল" হিসাবে সঞ্চিত একটি ফাইল উত্সের চেষ্টা করা) এবং "দ্বারা উত্সাহিত" "" কমান্ড ছিল সমাধান।
— জান Vlcinsky

এটি শীর্ষ উত্তর হওয়া উচিত কারণ এটি sh, ড্যাশ এবং ব্যাশ দিয়ে কাজ করবে।
— আখন

3
ম্যাক ওএস (দেব পরিবেশ) এবং ট্র্যাভিস-সিআই (পরীক্ষার পরিবেশ) এর সাথে সামঞ্জস্য করার জন্য, আমাকে ব্যবহার করতে হয়েছিল . ./filename। অন্যথায়, sh: 1: .: filename: not foundট্র্যাভিস-সিআই-তে পরীক্ষা চালানোর সময় আমি একটি ত্রুটি পেয়েছি ।
— অ্যাড্রিয়েন জোলি

48
$ls -l `which sh`
/bin/sh -> dash

$sudo dpkg-reconfigure dash #Select "no" when you're asked
[...]

$ls -l `which sh`
/bin/sh -> bash

তাহলে ঠিক হয়ে যাবে


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

গৃহীত উত্তর উবুন্টু 14 এ কাজ করে না, এইটি করে!
— রোহিথপ্রিপ

আপনার উত্তরে দয়া করে আরও কিছু ব্যাখ্যা যুক্ত করুন - এটি কী করে? dpkg-reconfigureসমস্ত ব্যবহারকারীর জন্য অ্যাক্সেসযোগ্য নাও হতে পারে, বিশেষত এমন সিস্টেমে যেগুলি ডেবিয়ানের উপর ভিত্তি করে নেই
— নিকো হাজে

source: not foundডেবিয়ান আপগ্রেড করার পরে পুরানো টেলনেট ক্লায়েন্টগুলির সাথে আমার ত্রুটিগুলি স্থির করে দিয়েছি , ধন্যবাদ
— বিজেস্টার


9

এই সমস্যাটি ঘটে কারণ জেনকিনস এক্সিকিউট শেল স্ক্রিপ্টটি তার / বিন / শ মাধ্যমে চালায়

ফলস্বরূপ, / বিন / শ "উত্স" জানে না

জেনকিন্সে আপনার এক্সিকিউট শেলের শীর্ষে আপনাকে কেবল নীচের লাইনটি যুক্ত করতে হবে

#!/bin/bash

প্রদত্ত প্রশ্নটি জেনকিন্সের সর্বোপরি সম্পর্কিত নয়
— নিকো হােস

8

sourceকমান্ড কিছু শাঁস বিল্ট ইন থাকে। আপনার যদি কোনও স্ক্রিপ্ট থাকে তবে এটি প্রথম লাইনে কোন শেলটি ব্যবহার করবে তা নির্দিষ্ট করা উচিত যেমন:

#!/bin/bash

ওয়েল, এটা বলে # / বিন / SH এবং অন্য লিনাক্স যদি আমি নিজে SH লিখুন এবং জিজ্ঞাসা "যা সোর্স" এটা আমার বলে: উৎস: শেল বিল্ট-ইন কমান্ড!
— মিলাদ

ওহ তাই এই এই লাইন জন্য ছিল। আমি সবসময় ভাবতাম। বিশাল ধন্যবাদ!
— কমনসেন্সকোড

5

আমি # জেনকিনস শেল এক্সিকিউট শেল থেকে সোর্স কমান্ড কল করার চেষ্টা করার সময় আমি এই ত্রুটির মুখোমুখি হয়েছি।

source profile.txt অথবা source profile.properties

সোর্স কমান্ডের প্রতিস্থাপনটি হ'ল

. ./profile.txt অথবা . ./profile.properties

দ্রষ্টব্য: দুটি বিন্দুর (।) এর মধ্যে একটি স্থান রয়েছে


0

আমি উবুন্টুতে একটি জিনু মেকফিলের মধ্যে পেয়েছি, (যেখানে / বিন / শ -> বাশ)

আমি ব্যবহার করা প্রয়োজন। কমান্ড, পাশাপাশি একটি ./ উপসর্গ সহ লক্ষ্য স্ক্রিপ্ট নির্দিষ্ট করুন (নীচে উদাহরণ দেখুন)

উত্সটি এই পরিস্থিতিতে কাজ করে নি, কেন এটি / বিন / বাশকে কল করা উচিত তা নিশ্চিত নয় ..

আমার শেল পরিবেশের পরিবর্তনশীলটি / বিন / ব্যাশে সেট করা আছে

test:
    $(shell . ./my_script)

নোট করুন এই নমুনাটিতে ট্যাব অক্ষর অন্তর্ভুক্ত নয়; স্ট্যাক এক্সচেঞ্জের জন্য ফর্ম্যাট করতে হয়েছিল।


0

উত্স একটি বাশ অন্তর্নির্মিত কমান্ড তাই সোর্স কমান্ড কার্যকর করতে আপনি রুট হিসাবে লগ ইন করতে পারেন।

sudo -s source ./filename.sh


এটি কোনও বৈধ সমাধানের মতো দেখায় না। ব্যবহারকারীর সুডো অনুমতি না থাকলে কী হবে? এবং উত্সাহিত স্টাফগুলি কেবলমাত্র প্রশাসক ব্যবহারকারী হিসাবে উপলভ্য, যা নতুন সমস্যার কারণ হবে
— নিকো হাজে

0

উবুন্টুতে, ফাইলটি চালানোর জন্য sh স্ক্রিপ্টনাম.শ ব্যবহার করার পরিবর্তে, আমি ব্যবহার করেছি। স্ক্রিপ্টনাম.শ এবং এটি কাজ করেছে! আমার ফাইলের প্রথম লাইনে রয়েছে: #!/bin/bash

স্ক্রিপ্টটি চালাতে এই কমান্ডটি ব্যবহার করুন

.name_of_script.sh

1
এরই মধ্যে একাধিকবার উত্তর দেওয়া হয়েছে। আপনি যদি এই জাতীয় ক্ষেত্রে একটি নতুন উত্তর যুক্ত করেন তবে আরও তথ্য সরবরাহ করুন
— নিকো হায়েস

-3

এটি আপনাকে সাহায্য করতে পারে, আমি এই ত্রুটিটি পেয়েছিলাম কারণ আমি .profileকমান্ডটি দিয়ে আমার পুনরায় লোড করার চেষ্টা করছিলাম . .profileএবং এতে একটি সিনট্যাক্স ত্রুটি ছিল


-6

বোর্ন শেল (sh) সনাক্ত করতে PATH ব্যবহার করে source <file>। আপনি যে ফাইলটি উত্সের চেষ্টা করছেন সেটি যদি আপনার পথে না থাকে তবে আপনি 'ফাইলটি খুঁজে পেল না' ত্রুটিটি পেয়ে যান।

চেষ্টা করুন:

source ./<filename>

5
পোস্টটি বলে sh: 1: source: not foundনাfile not found
— ক্রিশ্চিয়ান চ্যাপারো এ।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.