गाइड: बैश स्क्रिप्ट की निर्देशिका प्राप्त करें

गाइड: बैश स्क्रिप्ट की निर्देशिका प्राप्त करें
Bash Script

बैश स्क्रिप्ट निर्देशिका पुनर्प्राप्ति को समझना

बैश स्क्रिप्ट के साथ काम करते समय, उस निर्देशिका को जानना अक्सर आवश्यक होता है जहां स्क्रिप्ट स्थित है। यह विभिन्न कार्यों के लिए उपयोगी हो सकता है, जैसे कार्यशील निर्देशिका सेट करना या स्क्रिप्ट के स्थान से संबंधित फ़ाइलों तक पहुंचना।

इस गाइड में, हम यह पता लगाएंगे कि स्क्रिप्ट के भीतर से बैश स्क्रिप्ट के निर्देशिका पथ को कैसे पुनः प्राप्त किया जाए। यह दृष्टिकोण विशेष रूप से तब उपयोगी होता है जब आप चाहते हैं कि आपकी स्क्रिप्ट अन्य अनुप्रयोगों के लिए लॉन्चर के रूप में कार्य करे, यह सुनिश्चित करते हुए कि यह सही फ़ाइलों पर काम करती है।

आज्ञा विवरण
readlink -f बैश स्क्रिप्ट का पूर्ण पथ प्रदान करते हुए, एक प्रतीकात्मक लिंक के पूर्ण पथ को हल करता है।
dirname किसी दिए गए फ़ाइल पथ से निर्देशिका पथ निकालता है, जिसका उपयोग स्क्रिप्ट की निर्देशिका निर्धारित करने के लिए किया जाता है।
os.path.realpath(__file__) पायथन में किसी भी प्रतीकात्मक लिंक को हल करते हुए, निर्दिष्ट फ़ाइल का कैनोनिकल पथ लौटाता है।
os.chdir() वर्तमान कार्यशील निर्देशिका को पायथन में निर्दिष्ट पथ में बदलता है।
abs_path($0) पर्ल में निष्पादित की जा रही स्क्रिप्ट का पूर्ण पथ प्रदान करता है।
chdir() वर्तमान कार्यशील निर्देशिका को पर्ल और PHP में निर्दिष्ट पथ में बदलता है।
system() पर्ल में एक स्क्रिप्ट के भीतर से एक बाहरी कमांड निष्पादित करता है।
exec() वर्तमान प्रक्रिया को प्रतिस्थापित करते हुए, PHP में एक स्क्रिप्ट के भीतर से एक बाहरी प्रोग्राम चलाता है।

विस्तृत स्क्रिप्ट स्पष्टीकरण

प्रदान की गई स्क्रिप्ट उस निर्देशिका को निर्धारित करने के लिए डिज़ाइन की गई हैं जिसमें वे स्थित हैं और कार्यशील निर्देशिका को उस पथ में बदल देती हैं। यह तब उपयोगी होता है जब किसी स्क्रिप्ट को अपनी निर्देशिका के भीतर फ़ाइलों पर काम करने या उस स्थान से अन्य एप्लिकेशन लॉन्च करने की आवश्यकता होती है। उदाहरण के लिए, बैश स्क्रिप्ट में, कमांड readlink -f स्क्रिप्ट का पूर्ण पथ प्राप्त करने के लिए उपयोग किया जाता है, और dirname उस पथ से निर्देशिका निकालता है। फिर cd कमांड वर्तमान कार्यशील निर्देशिका को स्क्रिप्ट की निर्देशिका में बदल देता है, यह सुनिश्चित करता है कि बाद के कमांड सही स्थान पर संचालित हों।

पायथन उदाहरण में, os.path.realpath(__file__) स्क्रिप्ट का पूर्ण पथ प्राप्त करता है, और os.chdir() कार्यशील निर्देशिका को बदलता है। पर्ल स्क्रिप्ट का उपयोग करता है abs_path($0) स्क्रिप्ट का पूर्ण पथ प्राप्त करने के लिए और chdir() निर्देशिकाएँ बदलने के लिए. इसी प्रकार, PHP स्क्रिप्ट का उपयोग करता है 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 स्क्रिप्ट

PHP स्क्रिप्ट उदाहरण

<?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() PHP में किसी बाहरी प्रोग्राम को चलाने के लिए उपयोग किया जाता है।
  13. मैं PHP में निर्देशिका कैसे बदलूं?
  14. chdir() PHP में वर्तमान कार्यशील निर्देशिका को बदलने के लिए उपयोग किया जाता है।
  15. क्यों dirname स्क्रिप्ट में उपयोगी?
  16. dirname किसी दिए गए फ़ाइल पथ से निर्देशिका पथ निकालता है, जिससे स्क्रिप्ट की निर्देशिका का पता लगाने में मदद मिलती है।

स्क्रिप्ट निर्देशिका पुनर्प्राप्ति पर अंतिम विचार

बैश स्क्रिप्ट की निर्देशिका निर्धारित करना उन स्क्रिप्ट के लिए एक महत्वपूर्ण कार्य है जिन्हें स्थानीय फ़ाइलों पर काम करने या एप्लिकेशन लॉन्च करने की आवश्यकता होती है। जैसे कमांड का उपयोग करके readlink, dirname, और पर्यावरण चर का लाभ उठाते हुए, स्क्रिप्ट गतिशील रूप से अपनी कार्यशील निर्देशिका को समायोजित कर सकती हैं। यह अभ्यास सुनिश्चित करता है कि स्क्रिप्ट सही ढंग से संचालित हो, चाहे इसे कहीं से भी निष्पादित किया गया हो। इन तरीकों को समझना और लागू करना आपकी स्क्रिप्ट के लचीलेपन और विश्वसनीयता को बढ़ाता है, जिससे वे विभिन्न अनुप्रयोगों और उपयोग के मामलों के लिए अधिक कुशल बन जाते हैं।