GNU/Linux >> Znalost Linux >  >> Linux

Aktuální adresář skriptu Shell?

Většina odpovědí vám poskytne aktuální cestu a je citlivá na kontext. Chcete-li spustit skript z libovolného adresáře, použijte níže uvedený fragment.

DIR="$( cd "$( dirname "$0" )" && pwd )"

Přepnutím adresářů v subshell pak můžeme volat pwd a získat správnou cestu ke skriptu bez ohledu na kontext.

Poté můžete použít $DIR jako "$DIR/path/to/file"


Aktuální (počáteční) adresář skriptu shellu je adresář, ze kterého jste skript zavolali.


Jak již bylo zmíněno, umístění bude tam, odkud byl skript volán. Pokud chcete, aby skript odkazoval na umístění instalace, je to docela jednoduché. Níže je úryvek, který vytiskne PWD a nainstalovaný adresář:

#!/bin/bash
echo "Script executed from: ${PWD}"

BASEDIR=$(dirname $0)
echo "Script location: ${BASEDIR}"

Linux
  1. Časový limit ve skriptu Shell?

  2. Procesy v relaci v interaktivním prostředí versus ve skriptu?

  3. Odkud se spouští skript Shell?

  1. Význam $? Ve skriptu Shell?

  2. Shell Script pro tisk pyramidy hvězd

  3. Paralelní spuštění skriptu shellu

  1. Spusťte shell skript v novém terminálu z aktuálního terminálu

  2. Spusťte skript shellu v aktuálním prostředí s oprávněním sudo

  3. Transliterační skript pro linuxové prostředí