${@:$#}가 정확히 무엇인가요?

${@:$#}가 정확히 무엇인가요?

나는 실행을 시도했고 echo ${@:$#}현재 쉘에서 작동합니다.

echo ${#}에코가 0인 것을 발견했습니다 .

결과에 대한 자료를 찾지 못했습니다.

제가 사용하고 싶은 도커 스크립트를 이해할 수 있도록 그 부분을 이해하려고 노력 중입니다. 스크립트는 다음과 같습니다

alias enhance='function ne() { docker run --rm -v "$(pwd)/`dirname ${@:$#}`":/ne/input -it alexjc/neural-enhance ${@:1:$#-1} "input/`basename ${@:$#}`"; }; ne'

답변1

모든 POSIX 호환 쉘에서,

  • $#함수나 스크립트의 매개변수 개수, 위치 매개변수 개수입니다.
  • $@함수나 스크립트의 매개변수 목록, 위치 매개변수 목록 등입니다 $1.$2

큰 타격을 입은 상태에서,케시그리고지쉬, 등. :

  • ${@:offset:n}n매개변수부터 시작하는 매개변수가 없거나 offsetif부터 끝까지 모든 매개변수가 누락되어 있습니까?offsetn

따라서 ${@:$#}이는 현재 함수에 제공된 마지막 매개변수 ${@:1:$#-1}이지만 나머지 매개변수입니다. 마지막 인수도 작성할 수 있습니다 ${@: -1}(Bash 버전 4.3 이상).

관련 정보