গাইড: একটি ব্যাশ স্ক্রিপ্টের ডিরেক্টরি পান

গাইড: একটি ব্যাশ স্ক্রিপ্টের ডিরেক্টরি পান
Bash Script

ব্যাশ স্ক্রিপ্ট ডিরেক্টরি পুনরুদ্ধার বোঝা

ব্যাশ স্ক্রিপ্টগুলির সাথে কাজ করার সময়, স্ক্রিপ্টটি কোথায় অবস্থিত তা নির্দেশিকাটি জানা প্রায়ই প্রয়োজন। এটি বিভিন্ন কাজের জন্য উপযোগী হতে পারে, যেমন কাজের ডিরেক্টরি সেট করা বা স্ক্রিপ্টের অবস্থানের সাথে সম্পর্কিত ফাইলগুলি অ্যাক্সেস করা।

এই নির্দেশিকায়, আমরা স্ক্রিপ্টের মধ্যে থেকেই ব্যাশ স্ক্রিপ্টের ডিরেক্টরির পথটি কীভাবে পুনরুদ্ধার করতে হয় তা অন্বেষণ করব। এই পদ্ধতিটি বিশেষভাবে উপযোগী যখন আপনি চান যে আপনার স্ক্রিপ্ট অন্য অ্যাপ্লিকেশনের জন্য একটি লঞ্চার হিসাবে কাজ করে, এটি নিশ্চিত করে যে এটি সঠিক ফাইলগুলিতে কাজ করে।

আদেশ বর্ণনা
readlink -f ব্যাশ স্ক্রিপ্টের নিখুঁত পথ প্রদান করে একটি প্রতীকী লিঙ্কের সম্পূর্ণ পথের সমাধান করে।
dirname একটি প্রদত্ত ফাইল পাথ থেকে ডিরেক্টরি পাথ বের করে, স্ক্রিপ্টের ডিরেক্টরি নির্ধারণ করতে ব্যবহৃত হয়।
os.path.realpath(__file__) Python-এ যেকোনো প্রতীকী লিঙ্কের সমাধান করে নির্দিষ্ট ফাইলের ক্যানোনিকাল পাথ ফেরত দেয়।
os.chdir() Python এ নির্দিষ্ট পাথে বর্তমান ওয়ার্কিং ডিরেক্টরি পরিবর্তন করে।
abs_path($0) পার্লে সম্পাদিত স্ক্রিপ্টের নিখুঁত পথ প্রদান করে।
chdir() পার্ল এবং পিএইচপি-তে নির্দিষ্ট পাথে বর্তমান কাজের ডিরেক্টরি পরিবর্তন করে।
system() পার্লের একটি স্ক্রিপ্টের মধ্যে থেকে একটি বহিরাগত কমান্ড কার্যকর করে।
exec() পিএইচপি-তে একটি স্ক্রিপ্টের মধ্যে থেকে একটি বহিরাগত প্রোগ্রাম চালায়, বর্তমান প্রক্রিয়াটি প্রতিস্থাপন করে।

বিস্তারিত স্ক্রিপ্ট ব্যাখ্যা

প্রদত্ত স্ক্রিপ্টগুলি যে ডিরেক্টরিতে অবস্থিত তা নির্ধারণ করার জন্য ডিজাইন করা হয়েছে এবং কর্মরত ডিরেক্টরিটিকে সেই পথে পরিবর্তন করতে। এটি দরকারী যখন একটি স্ক্রিপ্টের নিজস্ব ডিরেক্টরির মধ্যে ফাইলগুলি পরিচালনা করতে বা সেই অবস্থান থেকে অন্যান্য অ্যাপ্লিকেশন চালু করার প্রয়োজন হয়। উদাহরণস্বরূপ, ব্যাশ স্ক্রিপ্টে, কমান্ড readlink -f স্ক্রিপ্টের পরম পথ পেতে ব্যবহৃত হয়, এবং dirname সেই পথ থেকে ডিরেক্টরিটি বের করে। এরপর cd কমান্ড বর্তমান কার্যকারী ডিরেক্টরিকে স্ক্রিপ্টের ডিরেক্টরিতে পরিবর্তন করে, পরবর্তী কমান্ডগুলি সঠিক অবস্থানে কাজ করে তা নিশ্চিত করে।

পাইথন উদাহরণে, os.path.realpath(__file__) স্ক্রিপ্টের পরম পথ পায়, এবং os.chdir() কাজের ডিরেক্টরি পরিবর্তন করে। পার্ল স্ক্রিপ্ট ব্যবহার করে abs_path($0) স্ক্রিপ্ট এর পরম পথ পেতে এবং chdir() ডিরেক্টরি পরিবর্তন করতে। একইভাবে, পিএইচপি স্ক্রিপ্ট ব্যবহার করে realpath(__FILE__) স্ক্রিপ্ট এর পথ খুঁজে পেতে এবং chdir() ডিরেক্টরি পরিবর্তন করতে। প্রতিটি স্ক্রিপ্ট একটি অ্যাপ্লিকেশন চালু করার জন্য একটি কমান্ড দিয়ে শেষ হয়, এটি নিশ্চিত করে যে এটি স্ক্রিপ্টের ডিরেক্টরির প্রেক্ষাপটে চলে।

একটি ব্যাশ স্ক্রিপ্টের ডিরেক্টরি নির্ধারণ করা

ব্যাশ স্ক্রিপ্ট উদাহরণ

#!/bin/bash
# Get the directory of the script
SCRIPT_DIR=$(dirname "$(readlink -f "$0")")
echo "The script is located in: $SCRIPT_DIR"

# Change to the script's directory
cd "$SCRIPT_DIR" || exit

# Execute the application
./application

স্ক্রিপ্ট ডিরেক্টরি পুনরুদ্ধারের জন্য পাইথন বিকল্প

পাইথন স্ক্রিপ্টের উদাহরণ

#!/usr/bin/env python3
import os
import sys

# Get the directory of the script
script_dir = os.path.dirname(os.path.realpath(__file__))
print(f"The script is located in: {script_dir}")

# Change to the script's directory
os.chdir(script_dir)

# Execute the application
os.system('./application')

স্ক্রিপ্ট ডিরেক্টরি নির্ধারণের জন্য পার্ল স্ক্রিপ্ট

পার্ল স্ক্রিপ্ট উদাহরণ

#!/usr/bin/env perl
use Cwd 'abs_path';
use File::Basename;

# Get the directory of the script
$script_dir = dirname(abs_path($0));
print "The script is located in: $script_dir\n";

# Change to the script's directory
chdir $script_dir or die "Cannot change directory: $!";

# Execute the application
system('./application');

পিএইচপি স্ক্রিপ্ট এর ডিরেক্টরি সনাক্ত করতে

পিএইচপি স্ক্রিপ্ট উদাহরণ

<?php
# Get the directory of the script
$script_dir = dirname(realpath(__FILE__));
echo "The script is located in: $script_dir\n";

# Change to the script's directory
chdir($script_dir);

# Execute the application
exec('./application');
?>

স্ক্রিপ্ট ডিরেক্টরি নির্ধারণের জন্য বিকল্প পদ্ধতি

পূর্বে উল্লিখিত পদ্ধতিগুলি ছাড়াও, একটি ব্যাশ স্ক্রিপ্টের ডিরেক্টরি নির্ধারণের অন্যান্য কৌশল রয়েছে। যেমন একটি পদ্ধতি পরিবেশ ভেরিয়েবল ব্যবহার করা হয়. উদাহরণস্বরূপ, দ $BASH_SOURCE ভেরিয়েবলে ব্যাশ স্ক্রিপ্টের ফাইল পাথ রয়েছে, যা অন্যান্য স্ক্রিপ্ট দ্বারা প্রাপ্ত স্ক্রিপ্টগুলির জন্য কার্যকর হতে পারে। আরেকটি পদ্ধতি হল কমান্ড-লাইন আর্গুমেন্টের ব্যবহার। বিশ্লেষণ করে $0 পরামিতি, যেটিতে স্ক্রিপ্টের নাম রয়েছে, আপনি স্ক্রিপ্টের অবস্থান নির্ণয় করতে পারেন যখন বিভিন্ন প্রসঙ্গ, যেমন সিম্বলিক লিঙ্ক বা সোর্স করা ফাইলগুলি থেকে নির্বাহ করা হয়।

এই বিকল্প পদ্ধতিগুলি স্ক্রিপ্টটি যে প্রেক্ষাপটে ব্যবহার করা হয়েছে তার উপর নির্ভর করে নমনীয়তা প্রদান করতে পারে। উদাহরণস্বরূপ, প্রতীকী লিঙ্কগুলির সাথে কাজ করার সময়, readlink স্ক্রিপ্টের সত্যিকারের পথটি সমাধান করার জন্য প্রায়ই প্রয়োজনীয়। এই বিভিন্ন কৌশলগুলি বোঝা নিশ্চিত করে যে আপনার স্ক্রিপ্টগুলি শক্তিশালী এবং বিভিন্ন এক্সিকিউশন পরিবেশের সাথে খাপ খাইয়ে নিতে পারে, তাদের উপযোগিতা এবং নির্ভরযোগ্যতা বাড়ায়।

সচরাচর জিজ্ঞাস্য

  1. আমি কিভাবে একটি স্ক্রিপ্ট ব্যবহার করে ডিরেক্টরি পেতে পারি? $BASH_SOURCE?
  2. তুমি ব্যবহার করতে পার dirname "$(realpath "${BASH_SOURCE[0]}")" স্ক্রিপ্টের ডিরেক্টরি পেতে।
  3. পার্থক্য কি $0 এবং $BASH_SOURCE?
  4. $0 স্ক্রিপ্টের নামটি কার্যকর করা হচ্ছে, যখন $BASH_SOURCE সোর্সড স্ক্রিপ্টের সম্পূর্ণ পথ রয়েছে।
  5. আমি ব্যবহার করতে পারেন readlink প্রতীকী লিঙ্ক দিয়ে?
  6. হ্যাঁ, readlink -f একটি প্রতীকী লিঙ্কের সম্পূর্ণ পথ সমাধান করে।
  7. কি করে os.chdir() পাইথনে করবেন?
  8. os.chdir() বর্তমান ওয়ার্কিং ডিরেক্টরিকে নির্দিষ্ট পাথে পরিবর্তন করে।
  9. আমি কিভাবে পার্লে একটি স্ক্রিপ্টের পরম পথ পেতে পারি?
  10. ব্যবহার abs_path($0) Cwd মডিউল থেকে স্ক্রিপ্টের পরম পথ প্রদান করে।
  11. একটি বহিরাগত প্রোগ্রাম চালানোর জন্য PHP-এ কোন কমান্ড ব্যবহার করা হয়?
  12. exec() পিএইচপি-তে একটি বাহ্যিক প্রোগ্রাম চালানোর জন্য ব্যবহৃত হয়।
  13. আমি কিভাবে PHP এ ডিরেক্টরি পরিবর্তন করব?
  14. chdir() পিএইচপি-তে বর্তমান কাজের ডিরেক্টরি পরিবর্তন করতে ব্যবহৃত হয়।
  15. কেন dirname স্ক্রিপ্টে দরকারী?
  16. dirname একটি প্রদত্ত ফাইল পাথ থেকে ডিরেক্টরি পাথ বের করে, স্ক্রিপ্টের ডিরেক্টরি সনাক্ত করতে সাহায্য করে।

স্ক্রিপ্ট ডিরেক্টরি পুনরুদ্ধার উপর চূড়ান্ত চিন্তা

একটি ব্যাশ স্ক্রিপ্টের ডিরেক্টরি নির্ধারণ করা স্ক্রিপ্টগুলির জন্য একটি গুরুত্বপূর্ণ কাজ যা স্থানীয় ফাইলগুলিতে কাজ করতে বা অ্যাপ্লিকেশন চালু করতে হবে। মত কমান্ড ব্যবহার করে readlink, dirname, এবং এনভায়রনমেন্ট ভেরিয়েবলের সাহায্যে, স্ক্রিপ্টগুলি গতিশীলভাবে তাদের কাজের ডিরেক্টরিকে সামঞ্জস্য করতে পারে। এই অনুশীলনটি নিশ্চিত করে যে স্ক্রিপ্টটি সঠিকভাবে কাজ করছে, তা নির্বিশেষে যেখান থেকে এটি কার্যকর করা হয়েছে। এই পদ্ধতিগুলি বোঝা এবং প্রয়োগ করা আপনার স্ক্রিপ্টগুলির নমনীয়তা এবং নির্ভরযোগ্যতা বাড়ায়, সেগুলিকে বিভিন্ন অ্যাপ্লিকেশন এবং ব্যবহারের ক্ষেত্রে আরও দক্ষ করে তোলে।