ಬ್ಯಾಷ್ ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಡೈರೆಕ್ಟರಿಯನ್ನು ಹುಡುಕಲು ಮಾರ್ಗದರ್ಶಿ

ಬ್ಯಾಷ್ ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಡೈರೆಕ್ಟರಿಯನ್ನು ಹುಡುಕಲು ಮಾರ್ಗದರ್ಶಿ
Bash Script

ನಿಮ್ಮ ಬ್ಯಾಷ್ ಸ್ಕ್ರಿಪ್ಟ್ ಡೈರೆಕ್ಟರಿಯನ್ನು ಪತ್ತೆ ಮಾಡಲಾಗುತ್ತಿದೆ

ಅನೇಕ ಸ್ಕ್ರಿಪ್ಟಿಂಗ್ ಸನ್ನಿವೇಶಗಳಲ್ಲಿ, ನಿಮ್ಮ ಬ್ಯಾಷ್ ಸ್ಕ್ರಿಪ್ಟ್ ಇರುವ ಡೈರೆಕ್ಟರಿಯನ್ನು ತಿಳಿದುಕೊಳ್ಳುವುದು ಅತ್ಯಗತ್ಯ. ಈ ಜ್ಞಾನವು ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಡೈರೆಕ್ಟರಿಗೆ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು ಮತ್ತು ಅದರಲ್ಲಿರುವ ಫೈಲ್‌ಗಳಲ್ಲಿ ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.

ನೀವು ಇನ್ನೊಂದು ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಅಥವಾ ನಿರ್ದಿಷ್ಟ ಫೈಲ್‌ಗಳಲ್ಲಿ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು ನಿಮ್ಮ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬಳಸುತ್ತಿದ್ದರೆ, ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಡೈರೆಕ್ಟರಿಯನ್ನು ಕಂಡುಹಿಡಿಯುವುದು ಸುಗಮ ಮತ್ತು ಊಹಿಸಬಹುದಾದ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಈ ಕಾರ್ಯವನ್ನು ಹೇಗೆ ಸಾಧಿಸುವುದು ಎಂಬುದನ್ನು ಈ ಮಾರ್ಗದರ್ಶಿ ತೋರಿಸುತ್ತದೆ.

ಆಜ್ಞೆ ವಿವರಣೆ
${BASH_SOURCE[0]} ಬ್ಯಾಷ್‌ನಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳ್ಳುವ ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಸಂಪೂರ್ಣ ಮಾರ್ಗವನ್ನು ಸೂಚಿಸುತ್ತದೆ.
cd $(dirname ...) ಪ್ರಸ್ತುತ ಡೈರೆಕ್ಟರಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಫೈಲ್ ಅಥವಾ ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಮೂಲ ಡೈರೆಕ್ಟರಿಗೆ ಬದಲಾಯಿಸುತ್ತದೆ.
pwd ಪ್ರಸ್ತುತ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಡೈರೆಕ್ಟರಿಯನ್ನು ಮುದ್ರಿಸುತ್ತದೆ.
realpath() ಪೈಥಾನ್‌ನಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಫೈಲ್ ಹೆಸರಿನ ಅಂಗೀಕೃತ ಮಾರ್ಗವನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.
sys.argv[0] ಪೈಥಾನ್ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಆಹ್ವಾನಿಸಲು ಬಳಸಿದ ಸ್ಕ್ರಿಪ್ಟ್ ಹೆಸರನ್ನು ಒಳಗೊಂಡಿದೆ.
os.chdir() ಪ್ರಸ್ತುತ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿರುವ ಡೈರೆಕ್ಟರಿಯನ್ನು ಪೈಥಾನ್‌ನಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಮಾರ್ಗಕ್ಕೆ ಬದಲಾಯಿಸುತ್ತದೆ.
os.system() ಪೈಥಾನ್‌ನಲ್ಲಿನ ಉಪಶೆಲ್‌ನಲ್ಲಿ ಆಜ್ಞೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ.
ls -al ಪ್ರಸ್ತುತ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ವಿವರವಾದ ಮಾಹಿತಿಯೊಂದಿಗೆ ಎಲ್ಲಾ ಫೈಲ್‌ಗಳು ಮತ್ತು ಡೈರೆಕ್ಟರಿಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡುತ್ತದೆ.

ಸ್ಕ್ರಿಪ್ಟ್ ಡೈರೆಕ್ಟರಿ ಸ್ಥಳವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು

ಒದಗಿಸಿದ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳು ಬ್ಯಾಷ್ ಸ್ಕ್ರಿಪ್ಟ್ ಇರುವ ಡೈರೆಕ್ಟರಿಯನ್ನು ನಿರ್ಧರಿಸಲು ವಿಧಾನಗಳನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತವೆ. ಬ್ಯಾಷ್ ಸ್ಕ್ರಿಪ್ಟ್ ಉದಾಹರಣೆಯಲ್ಲಿ, ಆಜ್ಞೆ ${BASH_SOURCE[0]} ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಮಾರ್ಗವನ್ನು ಪಡೆಯಲು ಬಳಸಲಾಗುತ್ತದೆ cd $(dirname ...) ಕೆಲಸದ ಡೈರೆಕ್ಟರಿಯನ್ನು ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಡೈರೆಕ್ಟರಿಗೆ ಬದಲಾಯಿಸುತ್ತದೆ. ದಿ pwd ಆಜ್ಞೆಯು ಪ್ರಸ್ತುತ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಡೈರೆಕ್ಟರಿಯನ್ನು ಮುದ್ರಿಸುತ್ತದೆ, ಇದು ಬದಲಾವಣೆಯನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ. ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಸ್ಥಳದಿಂದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಪ್ರಾರಂಭಿಸಲು ಇದು ಅವಶ್ಯಕವಾಗಿದೆ, ಎಲ್ಲಾ ಕಾರ್ಯಾಚರಣೆಗಳು ಸರಿಯಾದ ಸಂದರ್ಭದಲ್ಲಿ ಸಂಭವಿಸುವುದನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ.

ಪೈಥಾನ್ ಸ್ಕ್ರಿಪ್ಟ್ ಉದಾಹರಣೆಯಲ್ಲಿ, os.path.dirname(os.path.realpath(sys.argv[0])) ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಡೈರೆಕ್ಟರಿಯನ್ನು ಹಿಂಪಡೆಯುತ್ತದೆ, ಮತ್ತು os.chdir() ಕೆಲಸದ ಡೈರೆಕ್ಟರಿಯನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ. ದಿ os.system() ಮತ್ತೊಂದು ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಆಜ್ಞೆಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಸುಧಾರಿತ ಬ್ಯಾಷ್ ಸ್ಕ್ರಿಪ್ಟ್ ಉದಾಹರಣೆಯು ಈ ತಂತ್ರಗಳನ್ನು ಬಳಸಿ, ಸಂಯೋಜಿಸುತ್ತದೆ ls -al ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಫೈಲ್‌ಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಲು. ಈ ವಿಧಾನವು ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳಿಗೆ ಉಪಯುಕ್ತವಾಗಿದ್ದು, ಅವುಗಳ ಸ್ಥಳಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಫೈಲ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸುವ ಅಥವಾ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಅಗತ್ಯವಿದೆ.

ಬ್ಯಾಷ್ ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಡೈರೆಕ್ಟರಿಯನ್ನು ನಿರ್ಧರಿಸಿ

ಬ್ಯಾಷ್ ಸ್ಕ್ರಿಪ್ಟ್ ಉದಾಹರಣೆ

# Method to get the directory of the script
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

# Print the directory
echo "The script is located in: $DIR"

# Change to the script's directory
cd "$DIR"

# Execute another application
./application

ವರ್ಕಿಂಗ್ ಡೈರೆಕ್ಟರಿಯನ್ನು ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಸ್ಥಳಕ್ಕೆ ಬದಲಾಯಿಸುವುದು

ಪೈಥಾನ್ ಸ್ಕ್ರಿಪ್ಟ್ ಉದಾಹರಣೆ

import os
import sys

def get_script_directory():
    return os.path.dirname(os.path.realpath(sys.argv[0]))

# Get the script's directory
script_dir = get_script_directory()

# Print the directory
print(f"The script is located in: {script_dir}")

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

# Execute another application
os.system("./application")

ಶೆಲ್ ಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಡೈರೆಕ್ಟರಿಯನ್ನು ಪತ್ತೆ ಮಾಡಲಾಗುತ್ತಿದೆ

ಸುಧಾರಿತ ಬ್ಯಾಷ್ ಸ್ಕ್ರಿಪ್ಟ್ ಉದಾಹರಣೆ

#!/bin/bash

# Resolve the directory of the script
SCRIPT_DIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)

# Print the resolved directory
echo "Script directory is: $SCRIPT_DIR"

# Move to the script's directory
cd "$SCRIPT_DIR"

# Example operation in script's directory
echo "Listing files in script directory:"
ls -al

# Launch another application from the script directory
./application

ಸ್ಕ್ರಿಪ್ಟ್ ಡೈರೆಕ್ಟರಿಯನ್ನು ಹುಡುಕಲು ಹೆಚ್ಚುವರಿ ವಿಧಾನಗಳು

ಸ್ಕ್ರಿಪ್ಟ್ ಇರುವ ಡೈರೆಕ್ಟರಿಯನ್ನು ಹುಡುಕಲು ಮತ್ತೊಂದು ಉಪಯುಕ್ತ ವಿಧಾನವೆಂದರೆ ಪರಿಸರ ವೇರಿಯಬಲ್‌ಗಳನ್ನು ನಿಯಂತ್ರಿಸುವುದನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. ಕೆಲವು ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ, ದಿ $0 ವೇರಿಯೇಬಲ್ ಪ್ರಸ್ತುತ ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತಿರುವ ಸ್ಕ್ರಿಪ್ಟ್‌ಗೆ ಮಾರ್ಗವನ್ನು ಒಳಗೊಂಡಿದೆ. ಮುಂತಾದ ಆಜ್ಞೆಗಳೊಂದಿಗೆ ಇದನ್ನು ಸಂಯೋಜಿಸುವ ಮೂಲಕ dirname ಮತ್ತು readlink, ನೀವು ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಡೈರೆಕ್ಟರಿಯನ್ನು ಹೆಚ್ಚು ಪೋರ್ಟಬಲ್ ರೀತಿಯಲ್ಲಿ ನಿರ್ಧರಿಸಬಹುದು. ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ವಿಭಿನ್ನ ಪರಿಸರದಲ್ಲಿ ಅಥವಾ ಸಿಮ್‌ಲಿಂಕ್‌ಗಳ ಮೂಲಕ ಕಾರ್ಯಗತಗೊಳಿಸಿದಾಗ ಇದು ವಿಶೇಷವಾಗಿ ಉಪಯುಕ್ತವಾಗಿದೆ.

ಬಳಸಿ readlink ಡೈರೆಕ್ಟರಿಯನ್ನು ನಿರ್ಧರಿಸುವಲ್ಲಿ ನಿಖರತೆಯನ್ನು ಖಾತ್ರಿಪಡಿಸುವ ಮೂಲಕ ಅವುಗಳ ನಿಜವಾದ ಫೈಲ್ ಮಾರ್ಗಗಳಿಗೆ ಸಾಂಕೇತಿಕ ಲಿಂಕ್‌ಗಳನ್ನು ಪರಿಹರಿಸಬಹುದು. ಉದಾಹರಣೆಗೆ, DIR="$(dirname "$(readlink -f "$0")")" ಇದು ಸಿಮ್‌ಲಿಂಕ್ ಆಗಿದ್ದರೂ ಸಹ ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಡೈರೆಕ್ಟರಿಯನ್ನು ನೀಡುತ್ತದೆ. ಈ ವಿಧಾನಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ನಿಮ್ಮ ಸ್ಕ್ರಿಪ್ಟಿಂಗ್ ಟೂಲ್ಕಿಟ್ ಅನ್ನು ವಿಸ್ತರಿಸುತ್ತದೆ, ಇದು ಹೆಚ್ಚು ದೃಢವಾದ ಮತ್ತು ಹೊಂದಿಕೊಳ್ಳಬಲ್ಲ ಸ್ಕ್ರಿಪ್ಟ್ ನಿಯೋಜನೆಯನ್ನು ಅನುಮತಿಸುತ್ತದೆ.

ಸಾಮಾನ್ಯ ಪ್ರಶ್ನೆಗಳು ಮತ್ತು ಉತ್ತರಗಳು

  1. ಬ್ಯಾಷ್‌ನಲ್ಲಿ ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಡೈರೆಕ್ಟರಿಯನ್ನು ನಾನು ಹೇಗೆ ಪಡೆಯಬಹುದು?
  2. ಬಳಸಿ ${BASH_SOURCE[0]} ಜೊತೆ ಸಂಯೋಜಿಸಲಾಗಿದೆ dirname ಮತ್ತು pwd ಡೈರೆಕ್ಟರಿಯನ್ನು ಹುಡುಕಲು.
  3. ಸ್ಕ್ರಿಪ್ಟ್ ಡೈರೆಕ್ಟರಿಯನ್ನು ನಿರ್ಧರಿಸುವುದು ಏಕೆ ಮುಖ್ಯ?
  4. ಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿನ ಕಾರ್ಯಾಚರಣೆಗಳು ಸರಿಯಾದ ಸಂದರ್ಭದಲ್ಲಿ ಸಂಭವಿಸುವುದನ್ನು ಇದು ಖಚಿತಪಡಿಸುತ್ತದೆ, ವಿಶೇಷವಾಗಿ ಸಂಬಂಧಿತ ಫೈಲ್ ಮಾರ್ಗಗಳೊಂದಿಗೆ ವ್ಯವಹರಿಸುವಾಗ.
  5. ಸ್ಕ್ರಿಪ್ಟ್ ಡೈರೆಕ್ಟರಿಯನ್ನು ಹುಡುಕಲು ನಾನು ಪರಿಸರ ವೇರಿಯಬಲ್‌ಗಳನ್ನು ಬಳಸಬಹುದೇ?
  6. ಹೌದು, ವೇರಿಯೇಬಲ್‌ಗಳು ಹಾಗೆ $0 ಮತ್ತು ಮುಂತಾದ ಆಜ್ಞೆಗಳು readlink ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಸ್ಥಳವನ್ನು ನಿರ್ಧರಿಸಲು ಸಹಾಯ ಮಾಡಬಹುದು.
  7. ಏನು ಮಾಡುತ್ತದೆ readlink -f ಮಾಡುವುದೇ?
  8. ಇದು ಅವರ ಅಂತಿಮ ಗಮ್ಯಸ್ಥಾನಕ್ಕೆ ಎಲ್ಲಾ ಸಾಂಕೇತಿಕ ಲಿಂಕ್‌ಗಳನ್ನು ಪರಿಹರಿಸುತ್ತದೆ, ಸಂಪೂರ್ಣ ಮಾರ್ಗವನ್ನು ಒದಗಿಸುತ್ತದೆ.
  9. ಹೇಗೆ ಮಾಡುತ್ತದೆ sys.argv[0] ಪೈಥಾನ್ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳಲ್ಲಿ ಕೆಲಸ ಮಾಡುವುದೇ?
  10. ಇದು ಪೈಥಾನ್ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಆಹ್ವಾನಿಸಲು ಬಳಸುವ ಸ್ಕ್ರಿಪ್ಟ್ ಹೆಸರನ್ನು ಒಳಗೊಂಡಿದೆ, ಇದು ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಡೈರೆಕ್ಟರಿಯನ್ನು ನಿರ್ಧರಿಸಲು ಉಪಯುಕ್ತವಾಗಿದೆ.
  11. ಇದೆ os.path.realpath() ಪೈಥಾನ್ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳಲ್ಲಿ ಅಗತ್ಯವಿದೆಯೇ?
  12. ಹೌದು, ಇದು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಫೈಲ್ ಹೆಸರಿನ ಅಂಗೀಕೃತ ಮಾರ್ಗವನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ, ಇದು ಸಂಪೂರ್ಣ ಮಾರ್ಗವನ್ನು ನಿರ್ಧರಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
  13. ಈ ವಿಧಾನಗಳನ್ನು ಇತರ ಸ್ಕ್ರಿಪ್ಟಿಂಗ್ ಭಾಷೆಗಳಲ್ಲಿ ಬಳಸಬಹುದೇ?
  14. ನಿರ್ದಿಷ್ಟತೆಗಳು ಭಿನ್ನವಾಗಿರಬಹುದಾದರೂ, ಸ್ಕ್ರಿಪ್ಟ್ ಸ್ಥಳಗಳನ್ನು ನಿರ್ಧರಿಸಲು ಇದೇ ರೀತಿಯ ಪರಿಕಲ್ಪನೆಗಳನ್ನು ಇತರ ಭಾಷೆಗಳಲ್ಲಿ ಅನ್ವಯಿಸಬಹುದು.

ಸ್ಕ್ರಿಪ್ಟ್ ಡೈರೆಕ್ಟರಿ ಸ್ಥಳದ ಅಂತಿಮ ಆಲೋಚನೆಗಳು

ಸ್ಕ್ರಿಪ್ಟ್ ವಿಶ್ವಾಸಾರ್ಹತೆ ಮತ್ತು ಸರಿಯಾದ ಫೈಲ್ ನಿರ್ವಹಣೆಗೆ ಬ್ಯಾಷ್ ಸ್ಕ್ರಿಪ್ಟ್ ಇರುವ ಡೈರೆಕ್ಟರಿಯನ್ನು ಕಂಡುಹಿಡಿಯುವುದು ಅತ್ಯಗತ್ಯ. ಮುಂತಾದ ಆಜ್ಞೆಗಳನ್ನು ಬಳಸುವ ಮೂಲಕ ${BASH_SOURCE[0]}, dirname, ಮತ್ತು pwd, ನಿಮ್ಮ ಸ್ಕ್ರಿಪ್ಟ್ ಅದರ ಉದ್ದೇಶಿತ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂದು ನೀವು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬಹುದು. ಈ ವಿಧಾನವು ಬ್ಯಾಷ್‌ನಲ್ಲಿ ಪರಿಣಾಮಕಾರಿಯಾಗಿರುವುದಿಲ್ಲ ಆದರೆ ಪೈಥಾನ್ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ಬಳಸುವುದಕ್ಕಾಗಿ ಸಹ ಅಳವಡಿಸಿಕೊಳ್ಳಬಹುದು os.path.realpath() ಮತ್ತು sys.argv[0]. ಈ ತಂತ್ರಗಳು ಫೈಲ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸುವ ಸಾಮರ್ಥ್ಯವಿರುವ ದೃಢವಾದ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ರಚಿಸಲು ಮತ್ತು ಅವುಗಳ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಪರಿಸರವನ್ನು ಲೆಕ್ಕಿಸದೆ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿಖರವಾಗಿ ಪ್ರಾರಂಭಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.