Iš pradinio scenarijaus gaukite pradinį scenarijų katalogą

Kaip gauti kelią į katalogą, kuriame yra „ Bash “ scenarijus?

Pavyzdžiui, tarkime, kad noriu naudoti „Bash“ scenarijų kaip kitos programos paleidimą. Noriu pakeisti darbo katalogą, kur yra „Bash“ scenarijus, todėl galiu dirbti su šio katalogo failais, pavyzdžiui:

  $ ./application 
4227
12 сент. Jiaaro nustatė rugsėjo 12 d. 2008-09-12 23:39 '08 at 11:39 2008-09-12 23:39
@ 54 atsakymai
  • 1
  • 2
 #!/bin/bash DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>  pwd )" 

naudinga viena eilutė, kuri suteiks jums visą scenarijų katalogo pavadinimą, nesvarbu, kur jis vadinamas.

Jis veiks tol, kol paskutinis scenarijaus paieškos kelio komponentas nėra simbolinė nuoroda (nuorodos į katalogus yra gerai). Jei taip pat norite leisti nuorodas į patį scenarijų, jums reikia kelių eilučių sprendimo:

 #!/bin/bash SOURCE="${BASH_SOURCE[0]}" while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>  pwd )" SOURCE="$(readlink "$SOURCE")" [[ $SOURCE != Network/:/Network/: | sed s:.*/Volumes/:/Volumes/:`" 

Ne iš tikrųjų, bet jis atlieka savo darbą.

5
23 сент. atsakymas pateikiamas tigfox Sep 23 2010-09-23 02:22 '10, 02:22 am 2010-09-23 02:22
  • 1
  • 2

Kiti klausimai apie etiketes arba Užduoti klausimą