스크립트에서 루프를 명령줄 인수로 사용

스크립트에서 루프를 명령줄 인수로 사용

그래서 특정 확장자를 가진 파일을 특정 폴더(명령줄 인수를 통해 사용자가 선택한 파일)로 정렬하려고 합니다.

$1(.jpg) $2(.docx) 등을 가정해 보겠습니다.

스크립트는 모두 잘 작동하지만 파일을 폴더로 정렬하는 루프를 작성하려고 합니다(단순히 확장자에 따라 .jpg를 jpg 폴더에 넣기 때문에 기본적으로 mv .$1 $1). 더 이상 명령줄 인수가 없을 때까지(5개가 있다고 가정) 명령줄 인수에 항상 +1을 추가하도록 루프를 실행하고 더 이상 인수가 없으면 할당되지 않은 파일을 선택한 폴더로 이동하시겠습니까?

이게 내가 하고 싶은 일이야

function sorting {
count = 1
while [ $count -le 5 ]; do
mv .$count $count
count=$((count +1))
done 
} 

그런 다음 sort를 사용하여 스크립트에서 함수를 호출하려고 합니다.

답변1

매개변수의 인덱스는 필요하지 않습니다. 이렇게 하면 됩니다.

for file in "$@"
do
   # apply command to "$file"
done
# work here on remaining files in directory

$file변수는 입력 매개변수의 연속 값을 사용합니다. 구문에 유의하세요 "$@". 이는 인수(파일 이름)에 공백이 포함되어 있어도 여전히 하나의 단위로 처리된다는 것을 보장합니다.

관련 정보