내 쉘 스크립트에 3개의 매개변수가 있다고 가정해 보겠습니다.
./myscript dir1 material dir2
스크립트의 원래 매개변수 3개 개수가 아니라 $#
사용된 항목 개수를 보고 해야 합니다 .dir1/*
이 코드를 어떻게 적용할 수 있는지 아시나요?
답변1
for arg
do set -- "$arg/"*
[ -e "$1" ] &&
printf '%s/*:\t%d\n' "$arg" "$#"
done
이러한 루프를 실행한 후 원래 매개변수를 유지하려면 다음을 수행하십시오.
argc=$#
for arg
do set -- "$arg/"* "$@"
[ -e "$1" ] &&
printf '%s/*:\t%d\n' "$arg" "$((${#}-argc))"
shift "$((${#}-argc))"
done