Водич: Преузмите директоријум Басх скрипте

Водич: Преузмите директоријум Басх скрипте
Bash Script

Разумевање преузимања именика Басх скрипте

Када радите са Басх скриптама, често је потребно знати директоријум у коме се скрипта налази. Ово може бити корисно за различите задатке, као што је подешавање радног директоријума или приступ датотекама у односу на локацију скрипте.

У овом водичу ћемо истражити како да преузмемо путању директоријума Басх скрипте из саме скрипте. Овај приступ је посебно користан када желите да ваша скрипта делује као покретач за друге апликације, осигуравајући да ради на исправним датотекама.

Цомманд Опис
readlink -f Решава пуну путању симболичке везе, обезбеђујући апсолутну путању Басх скрипте.
dirname Извлачи путању директоријума из дате путање датотеке, која се користи за одређивање директоријума скрипте.
os.path.realpath(__file__) Враћа канонску путању наведене датотеке, решавајући све симболичке везе у Питхон-у.
os.chdir() Мења тренутни радни директоријум на наведену путању у Питхон-у.
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) из Цвд модула даје апсолутну путању скрипте.
  11. Која се команда користи у ПХП-у за извршавање екстерног програма?
  12. exec() се користи за покретање екстерног програма у ПХП-у.
  13. Како да променим директоријум у ПХП-у?
  14. chdir() се користи за промену тренутног радног директоријума у ​​ПХП-у.
  15. Зашто је dirname корисно у скриптама?
  16. dirname издваја путању директоријума из дате путање датотеке, помажући да се лоцира директоријум скрипте.

Завршна размишљања о проналажењу именика скрипти

Одређивање директоријума Басх скрипте је кључни задатак за скрипте које треба да раде на локалним датотекама или да покрећу апликације. Коришћењем команди попут readlink, dirname, и користећи променљиве окружења, скрипте могу динамички да прилагођавају свој радни директоријум. Ова пракса осигурава да скрипта ради исправно, без обзира одакле се извршава. Разумевање и примена ових метода побољшава флексибилност и поузданост ваших скрипти, чинећи их ефикаснијим за различите апликације и случајеве употребе.