বিভিন্ন স্ক্রিপ্ট থেকে ব্যবহৃত একটি ফাংশন অন্তর্ভুক্ত করার জন্য সর্বোত্তম / সাধারণ অনুশীলন কী?


0

আমি বর্তমানে এটি ব্যবহার করে এমন বিভিন্ন স্ক্রিপ্টগুলিতে আমার সমস্ত ফাংশন সহ একটি ফাংশন ফাইল উত্সর্গ করে এটি করেছি:

source ./functions.sh

আমি লক্ষ্য করেছি যে একটি অসুবিধা হ'ল সিনট্যাক্স ত্রুটিগুলির জন্য লাইন নম্বর ব্যাশ প্রিন্টগুলি কোনও মূল স্ক্রিপ্টের একটি নয়।


আপনি এর সংস্করণ যোগ করতে পারেন bash আপনি এই সমস্যা খুঁজে পেতে যা?
Hastur

উত্তর:


0

আপনি এটি ব্যবহার করছেন উপায় যুক্তিসঙ্গত।
আমি আপনার সমস্যা পুনরুত্পাদন করতে পারবেন না বাশ শেল আমি কাজ করতে পারি (জিএনইউ ব্যাশ, সংস্করণ 4.1.2 এবং জিএনইউ ব্যাশ, সংস্করণ 4.3.11)। নীচে এটি দেখুন:


টেস্ট স্ক্রিপ্ট go.sh। আপনি এটি দিয়ে চালাতে পারেন ./go.sh আপনি এটি সঙ্গে এক্সিকিউটেবল করা পরে chmod u+x go.sh পাশাপাশি /bin/bash go.sh

echo  "   ### Here we start ###"  Script line 1
source my_sourced_file
echo Script line 3
casfsda    # this is the line 4 of script
echo Script line 5
f  "Script line #6 using the function from sourced file"
echo "   ### Here we finish ###" Script line 7

ফাংশন সঙ্গে ফাইল যা আপনি বর্তমান ডিরেক্টরির নামকরণ করা আছে my_sourced_file:

echo Hello word this is the 1 line of my_sourced_file
f(){ echo Hello $1 ;}
f "Gustave line number 3 of  my_sourced_file"
echo linea 4 my_sourced_file

আউটপুট (মধ্যে কালো ভূল)

### এখানে আমরা ### স্ক্রিপ্ট লাইন শুরু করি
হ্যালো ওয়ার্ল্ড এটি আমার_সোর্স_ফিল 1 লাইন
হ্যালো গুস্তাভ লাইন নম্বর 3 এর my_sourced_file
লাইন 4 my_sourced_file
স্ক্রিপ্ট লাইন 3
./go.sh: লাইন 4: casfsda: কমান্ড পাওয়া যায় নি
স্ক্রিপ্ট লাইন 5
সোর্স ফাইল থেকে ফাংশন ব্যবহার করে হ্যালো স্ক্রিপ্ট লাইন # 6      ### এখানে আমরা ### স্ক্রিপ্ট লাইন 7 শেষ করি

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