저와 교육에 맞게 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