programing

bash 스크립트에서 $ {0 % / *}의 의미는 무엇입니까?

nasanasas 2020. 11. 28. 09:37
반응형

bash 스크립트에서 $ {0 % / *}의 의미는 무엇입니까?


다음 세그먼트를 포함하는 테스트 스크립트를 이해하려고합니다.

SCRIPT_PATH=${0%/*}
if [ "$0" != "$SCRIPT_PATH" ] && [ "$SCRIPT_PATH" != "" ]; then 
    cd $SCRIPT_PATH
fi

뭐라고합니까 ${0%/*}약자? 감사


라고 Parameter Expansion합니다. 이 페이지 와 사이트의 나머지 부분을 살펴보십시오 .

어떤 ${0%/*}일은가 포함 된 값 확장이며, 인수 0 문자열 제거한 후 (스크립트라는 경로) /*그것의 끝에서 접미사를.

따라서 다른 주장과 $0동일 ${0}합니다. $1로 쓸 수 있습니다 ${1}. 내가 말했듯 $0이 이것은 실제 논쟁 이 아니기 때문에 항상 존재하며 스크립트의 이름을 나타냅니다. 매개 변수 확장은 { }중괄호 내에서 작동하며 매개 변수 확장의 %한 유형입니다.

%/*마지막 항목과 일치하고 해당 문자 뒤의 모든 /항목 (모든 *것을 의미)을 제거합니다 . 이 간단한 예를 살펴보십시오.

$ var="foo/bar/baz"
$ echo "$var"
foo/bar/baz
$ echo "${var}"
foo/bar/baz
$ echo "${var%/*}"
foo/bar

참고 URL : https://stackoverflow.com/questions/6393551/what-is-the-meaning-of-0-in-a-bash-script

반응형