گائیڈ: باش اسکرپٹ کی ڈائرکٹری حاصل کریں۔

گائیڈ: باش اسکرپٹ کی ڈائرکٹری حاصل کریں۔
Bash Script

باش اسکرپٹ ڈائرکٹری بازیافت کو سمجھنا

Bash اسکرپٹ کے ساتھ کام کرتے وقت، اکثر اس ڈائریکٹری کو جاننا ضروری ہوتا ہے جہاں اسکرپٹ واقع ہے۔ یہ مختلف کاموں کے لیے مفید ہو سکتا ہے، جیسے کہ ورکنگ ڈائرکٹری سیٹ کرنا یا اسکرپٹ کے مقام سے متعلق فائلوں تک رسائی۔

اس گائیڈ میں، ہم اسکرپٹ کے اندر سے باش اسکرپٹ کے ڈائرکٹری پاتھ کو بازیافت کرنے کا طریقہ دریافت کریں گے۔ یہ نقطہ نظر خاص طور پر مفید ہے جب آپ چاہتے ہیں کہ آپ کا اسکرپٹ دیگر ایپلیکیشنز کے لیے لانچر کے طور پر کام کرے، اس بات کو یقینی بناتے ہوئے کہ یہ درست فائلوں پر کام کرے۔

کمانڈ تفصیل
readlink -f باش اسکرپٹ کا مطلق راستہ فراہم کرتے ہوئے، علامتی لنک کے مکمل راستے کو حل کرتا ہے۔
dirname اسکرپٹ کی ڈائرکٹری کا تعین کرنے کے لیے استعمال کیے گئے فائل پاتھ سے ڈائریکٹری کا راستہ نکالتا ہے۔
os.path.realpath(__file__) Python میں کسی بھی علامتی لنکس کو حل کرتے ہوئے، مخصوص فائل کا کینونیکل راستہ لوٹاتا ہے۔
os.chdir() موجودہ ورکنگ ڈائرکٹری کو Python میں مخصوص پاتھ میں تبدیل کرتا ہے۔
abs_path($0) اسکرپٹ کا مکمل راستہ فراہم کرتا ہے جس پر پرل میں عمل کیا جا رہا ہے۔
chdir() موجودہ ورکنگ ڈائرکٹری کو پرل اور پی ایچ پی میں مخصوص راستے میں تبدیل کرتا ہے۔
system() پرل میں اسکرپٹ کے اندر سے ایک بیرونی کمانڈ پر عمل درآمد کرتا ہے۔
exec() موجودہ عمل کی جگہ لے کر پی ایچ پی میں اسکرپٹ کے اندر سے ایک بیرونی پروگرام چلاتا ہے۔

اسکرپٹ کی تفصیلی وضاحت

فراہم کردہ اسکرپٹ کو اس ڈائرکٹری کا تعین کرنے کے لیے ڈیزائن کیا گیا ہے جس میں وہ واقع ہیں اور ورکنگ ڈائرکٹری کو اس راستے میں تبدیل کرتے ہیں۔ یہ اس وقت کارآمد ہوتا ہے جب اسکرپٹ کو اپنی ڈائرکٹری میں فائلوں پر کام کرنے یا اس مقام سے دیگر ایپلیکیشنز لانچ کرنے کی ضرورت ہوتی ہے۔ مثال کے طور پر، Bash اسکرپٹ میں، کمانڈ 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 اسکرپٹ کی ڈائرکٹری کا تعین کرنے کے لیے دوسری تکنیکیں موجود ہیں۔ ایسا ہی ایک طریقہ ماحولیاتی متغیرات کا استعمال ہے۔ مثال کے طور پر، the $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() Python میں کرتے ہیں؟
  8. os.chdir() موجودہ ورکنگ ڈائرکٹری کو مخصوص راستے میں تبدیل کرتا ہے۔
  9. میں پرل میں اسکرپٹ کا مطلق راستہ کیسے حاصل کرسکتا ہوں؟
  10. استعمال کرنا abs_path($0) Cwd ماڈیول سے اسکرپٹ کا مطلق راستہ فراہم کرتا ہے۔
  11. بیرونی پروگرام کو چلانے کے لیے پی ایچ پی میں کون سی کمانڈ استعمال ہوتی ہے؟
  12. exec() پی ایچ پی میں ایک بیرونی پروگرام چلانے کے لیے استعمال ہوتا ہے۔
  13. میں پی ایچ پی میں ڈائریکٹری کو کیسے تبدیل کروں؟
  14. chdir() پی ایچ پی میں موجودہ ورکنگ ڈائرکٹری کو تبدیل کرنے کے لیے استعمال کیا جاتا ہے۔
  15. کیوں ہے dirname سکرپٹ میں مفید؟
  16. dirname اسکرپٹ کی ڈائرکٹری کو تلاش کرنے میں مدد کرتے ہوئے، دیئے گئے فائل پاتھ سے ڈائریکٹری کا راستہ نکالتا ہے۔

اسکرپٹ ڈائرکٹری کی بازیافت پر حتمی خیالات

باش اسکرپٹ کی ڈائرکٹری کا تعین کرنا اسکرپٹ کے لیے ایک اہم کام ہے جنہیں مقامی فائلوں پر کام کرنے یا ایپلیکیشنز لانچ کرنے کی ضرورت ہوتی ہے۔ جیسے کمانڈز کا استعمال کرکے readlink، dirname، اور ماحولیاتی متغیرات کا فائدہ اٹھاتے ہوئے، اسکرپٹ اپنی ورکنگ ڈائرکٹری کو متحرک طور پر ایڈجسٹ کر سکتے ہیں۔ یہ پریکٹس اس بات کو یقینی بناتی ہے کہ اسکرپٹ صحیح طریقے سے چل رہا ہے، قطع نظر اس کے کہ اس پر عمل کہاں سے کیا گیا ہے۔ ان طریقوں کو سمجھنا اور ان پر عمل درآمد آپ کے اسکرپٹ کی لچک اور بھروسے کو بڑھاتا ہے، جس سے وہ مختلف ایپلی کیشنز اور استعمال کے کیسز کے لیے زیادہ کارآمد ہوتے ہیں۔