$@ 한 자리를 이동하기 위해 Shift를 사용하는 방법

$@ 한 자리를 이동하기 위해 Shift를 사용하는 방법

저는 3개의 매개변수를 사용하여 쉘 스크립트를 실행하고 있습니다. 각 기사의 단어 수를 세고 있어요. 하지만 첫 번째 매개변수를 건너뛰고 싶습니다. 아마도 shift다음과 같은 방법을 사용했을 것입니다.

내가 본 대부분의 예에는 루프가 shift포함되어 있는데 for/while, 이는 내가 하고 있는 작업에 필요한 것 이상입니다.

다음은 if 문의 내용이므로 표시할 필요는 없습니다. $@를 하나로 바꾸는 쉽고 빠른 방법이 있나요?

wc $@

답변1

첫 번째 매개변수를 변수에 저장한 후 다음을 수행합니다 shift.

arg1="$1"
shift
wc "$@" >"$arg1"

답변2

for((i=2;i<=$#;i++)); do
    wc "${!i}"
done

답변3

shift인수를 사용하여 호출 1하고 참조를 기억하세요 "$@".

shift 1
wc "$@"

관련 정보