ব্যাশ শেল স্ক্রিপ্টে কীভাবে ফাইল অন্তর্ভুক্ত করা যায়


121

শেল স্ক্রিপ্টে অন্য শেল স্ক্রিপ্টের কাজগুলি অ্যাক্সেস করতে সক্ষম হওয়ার কোনও উপায় কী আছে?

পিএইচপি-তে কীভাবে আপনি includeঅন্য পিএইচপি ফাইলগুলির সাথে নির্দেশনাটি ব্যবহার করতে পারেন যাতে কেবলমাত্র ফাংশনটির নাম কল করে ফাংশনটি অন্তর্ভুক্ত থাকে run



রেফারেন্সের জন্য ধন্যবাদ যদিও পোস্টটি sourceআদেশটি বোঝায় , নিজেই প্রশ্নটি কোনও sourceফাইলের অবস্থান কীভাবে নির্ধারণ করতে হবে তা জিজ্ঞাসা করছে ।
মেছাফ্ল্যাশ

1
"প্রাথমিক প্রশ্ন" হ'ল স্ট্যাক ওভারফ্লোর অনুঘটক। আপনি বুঝতে পারছেন যে এই সাইটটি অন্য যে কোনও সাইটের মতোই সূচিকৃত হয় এবং এখন "বাশ শেল স্ক্রিপ্টে ফাইল কীভাবে অন্তর্ভুক্ত করা যায়" গুগলকে দেখানো হবে ওভারফ্লো স্ট্যাকের সাথে সংযুক্ত করে এভাবে সাইটের ট্র্যাফিক এবং এক্সপোজার বাড়বে। = ডি
মেছাফ্ল্যাশ

3
আপনি স্মার্ট! ধন্যবাদ আপনার দুর্দান্ততা!
মেছাফ্ল্যাশ

4
@ ট্রাউডবাউর, এই মন্তব্য করা নির্বোধ যে ব্যবহারকারীকে উত্তরের জন্য গুগল করা উচিত ছিল, যখন ঠিক পৃষ্ঠাটি আমি কীভাবে পেলাম। উদাহরণস্বরূপ, আজ এই নির্দিষ্ট প্রশ্নটি ছিল "বশ অন্তর্ভুক্ত ফাইল" এর জন্য গুগলের শীর্ষ ফলাফল। অন্য কোনও সমাধান খুঁজতে আমার এই উত্তরটি ছেড়ে দেওয়া উচিত ছিল?
lwitzel

উত্তর:


192

কেবল আপনার স্ক্রিপ্টের ভিতরে রাখুন:

source FILE

অথবা

. FILE # POSIX compliant

$ LANG=C help source
source: source filename [arguments]
Execute commands from a file in the current shell.

Read and execute commands from FILENAME in the current shell.  The
entries in $PATH are used to find the directory containing FILENAME.
If any ARGUMENTS are supplied, they become the positional parameters
when FILENAME is executed.

Exit Status:
Returns the status of the last command executed in FILENAME; fails if
FILENAME cannot be read.

17
মনে রাখবেন যে . POSIX
অনুগ্রহজনক

তবে এখানে উত্সটি ঠিক যেমনটি আমরা Cভাষায় করি ঠিক তেমনটি নয় । এখানে উত্সটি মূল স্ক্রিপ্টে শিশু স্ক্রিপ্টটি কার্যকর করছে uting আমি যদি কেবল শিশু স্ক্রিপ্ট থেকে একটি বিশেষ ফাংশন কল করতে চাই?
পরেশ মায়ানী

8
. script.shসাথে বিভ্রান্ত করবেন না ./script.sh। কী চলছে তা
জানার

যখন। পসিক্স অনুবর্তী, যার অর্থ এটি শ, ড্যাশ, জেডএস এবং অন্যান্য পসিক্স শেলগুলিতে কাজ করবে। এটি ব্যবহার করা ভাল। যেমন কিছু শেলের নিজস্ব, অনুরূপ, তবে "উত্স" এর কিছুটা আলাদা সংস্করণ যা আপনার অ্যাপ্লিকেশনটিকে ভেঙে দিতে পারে।
জ্যাকব কোরবা

51

উপরের উত্তরগুলি সঠিক, তবে অন্য ফোল্ডারে স্ক্রিপ্ট চালালে কিছু সমস্যা হবে।

উদাহরণস্বরূপ, a.shএবং b.shএকই ফোল্ডারে রয়েছে, অন্তর্ভুক্ত করার . ./b.shজন্য একটি অন্তর্ভুক্ত বি ।

যখন ফোল্ডারের বাইরে স্ক্রিপ্টটি রান, সঙ্গে উদাহরণস্বরূপ xx/xx/xx/a.sh, ফাইল b.shপাওয়া যায়নি হবে: ./b.sh: No such file or directory

আমি ব্যবহার করি

. $(dirname "$0")/b.sh

33

হ্যাঁ, উত্স বা সংক্ষিপ্ত ফর্মটি ব্যবহার করুন যা কেবলমাত্র .:

. other_script.sh

3
নোট করুন .সংস্করণে shপাশাপাশি কাজ করে । "উত্স" একমাত্র ব্যাশে কাজ করে।
শ্রীধর সারনোবাত

2

আমার পরিস্থিতিতে color.shএকই ডিরেক্টরি থেকে অন্তর্ভুক্ত করার জন্য init.shআমাকে নীচের মতো কিছু করতে হয়েছিল।

. ./color.sh

কেন ./এবং color.shসরাসরি নয় তা নিশ্চিত নয় । নিম্নলিখিত বিষয়বস্তু color.sh

RED=`tput setaf 1`
GREEN=`tput setaf 2`
BLUE=`tput setaf 4`
BOLD=`tput bold`
RESET=`tput sgr0`

ব্যবহার করা File color.shত্রুটি করে না তবে রঙটি প্রদর্শন করে না। আমি এটি পরীক্ষা করেছি Ubuntu 18.04এবং Bashসংস্করণটি হ'ল:

GNU bash, version 4.4.19(1)-release (x86_64-pc-linux-gnu)


এটি কেবলমাত্র আপনার বর্তমান কার্যনির্বাহী ডিরেক্টরিতে ফাইলটি দেবে, ডিরেক্টরিটি নয় যেখানে init.shরয়েছে (এটি যদি আপনি ./init.shএটি প্রথম স্থানে চালু করেন তবে তারা মিলে যায় )।
রাকব

1

সিনট্যাক্স হয় source <file-name>

প্রাক্তন। source config.sh

স্ক্রিপ্ট - config.sh

USERNAME="satish"
EMAIL="satish@linuxconcept.com"

কলিং লিপি -

#!/bin/bash
source config.sh
echo Welcome ${USERNAME}!
echo Your email is ${EMAIL}.

আপনি এখানে অন্য ব্যাশ স্ক্রিপ্টে বাশ স্ক্রিপ্ট অন্তর্ভুক্ত করতে শিখতে পারেন ।

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