![이 경우 왜 "shift" 명령을 사용합니까? [폐쇄]](https://linux55.com/image/97965/%EC%9D%B4%20%EA%B2%BD%EC%9A%B0%20%EC%99%9C%20%22shift%22%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%A9%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
저와 교육에 맞게 debootstrap을 다시 작성하고 있습니다. "functions" 파일의 대화형 코드에서 "shift" 명령을 사용하는 이유는 무엇입니까? "shift"를 사용하기 위해 전송된 매개변수는 그리 많지 않으며, 제가 아는 한 함수 매개변수는 함수 내에서만 액세스할 수 있습니다.
예:
error () {
# <error code> <name> <string> <args>
local err="$1"
local name="$2"
local fmt="$3"
shift; shift; shift
if [ "$USE_DEBIANINSTALLER_INTERACTION" ]; then
(echo "E: $name"
for x in "$@"; do echo "EA: $x"; done
echo "EF: $fmt") >&4
else
(printf "E: $fmt\n" "$@") >&4
fi
exit $err
}
답변1
이러한 세 가지 변환은 매개변수에서 오류 코드, 이름 및 문자열을 제거하므로 나머지 매개변수는 스크립트 9행의 루프에 편리하게 배치할 수 있습니다 $@
.for