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.