માર્ગદર્શિકા: બેશ સ્ક્રિપ્ટની ડિરેક્ટરી મેળવો

માર્ગદર્શિકા: બેશ સ્ક્રિપ્ટની ડિરેક્ટરી મેળવો
Bash Script

બેશ સ્ક્રિપ્ટ ડિરેક્ટરી પુનઃપ્રાપ્તિને સમજવું

બૅશ સ્ક્રિપ્ટો સાથે કામ કરતી વખતે, સ્ક્રિપ્ટ ક્યાં સ્થિત છે તે નિર્દેશિકાને જાણવી જરૂરી છે. આ વિવિધ કાર્યો માટે ઉપયોગી થઈ શકે છે, જેમ કે કાર્યકારી નિર્દેશિકા સેટ કરવી અથવા સ્ક્રિપ્ટના સ્થાનને લગતી ફાઇલોને ઍક્સેસ કરવી.

આ માર્ગદર્શિકામાં, અમે સ્ક્રિપ્ટની અંદરથી જ બાશ સ્ક્રિપ્ટના ડિરેક્ટરી પાથને કેવી રીતે પુનઃપ્રાપ્ત કરવો તે શોધીશું. આ અભિગમ ખાસ કરીને ઉપયોગી છે જ્યારે તમે ઇચ્છો છો કે તમારી સ્ક્રિપ્ટ અન્ય એપ્લિકેશનો માટે લૉન્ચર તરીકે કાર્ય કરે, ખાતરી કરો કે તે યોગ્ય ફાઇલો પર કાર્ય કરે છે.

આદેશ વર્ણન
readlink -f બેશ સ્ક્રિપ્ટનો સંપૂર્ણ માર્ગ પ્રદાન કરીને, સાંકેતિક લિંકના સંપૂર્ણ પાથને ઉકેલે છે.
dirname આપેલ ફાઇલ પાથમાંથી ડિરેક્ટરી પાથને બહાર કાઢે છે, જેનો ઉપયોગ સ્ક્રિપ્ટની ડિરેક્ટરી નક્કી કરવા માટે થાય છે.
os.path.realpath(__file__) Python માં કોઈપણ સાંકેતિક લિંક્સને ઉકેલીને, ઉલ્લેખિત ફાઇલનો કેનોનિકલ પાથ પરત કરે છે.
os.chdir() Python માં ઉલ્લેખિત પાથ પર વર્તમાન કાર્યકારી નિર્દેશિકાને બદલે છે.
abs_path($0) પર્લમાં એક્ઝિક્યુટ થતી સ્ક્રિપ્ટનો સંપૂર્ણ માર્ગ પૂરો પાડે છે.
chdir() વર્તમાન કાર્યકારી નિર્દેશિકાને પર્લ અને PHP માં ઉલ્લેખિત પાથ પર બદલો.
system() પર્લમાં સ્ક્રિપ્ટની અંદરથી બાહ્ય આદેશ ચલાવે છે.
exec() વર્તમાન પ્રક્રિયાને બદલીને, PHP માં સ્ક્રિપ્ટની અંદરથી બાહ્ય પ્રોગ્રામ ચલાવે છે.

વિગતવાર સ્ક્રિપ્ટ સમજૂતી

પૂરી પાડવામાં આવેલ સ્ક્રિપ્ટો તે નિર્દેશિકાને નિર્ધારિત કરવા માટે ડિઝાઇન કરવામાં આવી છે જેમાં તેઓ સ્થિત છે અને કાર્યકારી નિર્દેશિકાને તે પાથ પર બદલવા માટે. આ ત્યારે ઉપયોગી છે જ્યારે સ્ક્રિપ્ટને તેની પોતાની ડિરેક્ટરીમાંની ફાઇલો પર કામ કરવાની જરૂર હોય અથવા તે સ્થાનથી અન્ય એપ્લિકેશનો લોંચ કરવાની જરૂર હોય. ઉદાહરણ તરીકે, Bash સ્ક્રિપ્ટમાં, આદેશ 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, અને એન્વાયર્નમેન્ટ વેરીએબલ્સનો ઉપયોગ કરીને, સ્ક્રિપ્ટો તેમની કાર્યકારી નિર્દેશિકાને ગતિશીલ રીતે ગોઠવી શકે છે. આ પ્રથા સુનિશ્ચિત કરે છે કે સ્ક્રિપ્ટ યોગ્ય રીતે કાર્ય કરે છે, પછી ભલેને તે ક્યાંથી ચલાવવામાં આવે. આ પદ્ધતિઓને સમજવા અને અમલમાં મૂકવાથી તમારી સ્ક્રિપ્ટ્સની લવચીકતા અને વિશ્વસનીયતા વધે છે, જે તેમને વિવિધ એપ્લિકેશનો અને ઉપયોગના કેસ માટે વધુ કાર્યક્ષમ બનાવે છે.