반응형
실행중인 BASH 펼쳐의 경로 확인 [중복]
Windows 명령 펼쳐에서를 사용하여 현재 실행중인 디렉토리 의 디렉토리 경로를 확인할 수 있습니다 %~dp0
. 예를 들면 :
@echo Running from %~dp0
BASH 펼쳐 에서 동등한 무엇입니까?
상대 경로의 경우 (즉, Windows '와 직접 동등 함 %~dp0
) :
MY_PATH="`dirname \"$0\"`"
echo "$MY_PATH"
정규화 된 절대 경로의 경우 :
MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
if [ -z "$MY_PATH" ] ; then
# error; for some reason, the path is not accessible
# to the script (e.g. permissions re-evaled after suid)
exit 1 # fail
fi
echo "$MY_PATH"
당신이 bash는 펼쳐 사용에 대한 전체 경로를 입력 가정 $0
하고 dirname
, 예를 들면 :
#!/bin/bash
echo "$0"
dirname "$0"
출력 예 :
$ /a/b/c/myScript.bash
/a/b/c/myScript.bash
/a/b/c
필요한 경우 $PWD
변수 결과를 상대 경로에 추가합니다 .
편집 : 공백 문자를 처리하기 위해 인용 부호가 추가되었습니다.
에 의해 공헌 스테판 Chazelas가 POSIX 쉘을 가정 기분이야에 :
prg=$0
if [ ! -e "$prg" ]; then
case $prg in
(*/*) exit 1;;
(*) prg=$(command -v -- "$prg") || exit;;
esac
fi
dir=$(
cd -P -- "$(dirname -- "$prg")" && pwd -P
) || exit
prg=$dir/$(basename -- "$prg") || exit
printf '%s\n' "$prg"
echo Running from `dirname $0`
Vlad의 코드가 너무 많이 인용되었습니다. 해야한다 :
MY_PATH=`dirname "$0"`
MY_PATH=`( cd "$MY_PATH" && pwd )`
참고 URL : https://stackoverflow.com/questions/630372/determine-the-path-of-the-executing-bash-script
반응형
'IT' 카테고리의 다른 글
매개 변수로 SQL 쿼리의 목록 목록 (0) | 2020.08.16 |
---|---|
List 간 자유롭게 변환 (0) | 2020.08.16 |
DLL이 디버그 또는 릴리스 빌드인지 확인 방법 (.NET) (0) | 2020.08.16 |
github에서 프로젝트를 어떻게 가져 옵니까? (0) | 2020.08.16 |
마지막 열을 제외하고 표 셀 너비를 최소로 설정하고 치수는? (0) | 2020.08.16 |