"찾기" 매개변수를 변수에 저장

"찾기" 매개변수를 변수에 저장

다음 bash 명령을 실행하고 있습니다.

find . \( -iname '*.aif' -o -iname '*.pdf' -o -iname '*.exe' -o -iname '*.mov' \
    -o -iname '*.doc' \) -exec rm -f {} \;

find나중에 스크립트의 다른 호출에서 동일한 매개변수를 실행합니다. \( -iname '*.aif' -o -iname '*.pdf' -o -iname '*.exe' \ -o -iname '*.mov' -o -iname '*.doc' \)부품을 변수에 저장하는 방법이 있나요 ?

답변1

ksh, bash 또는 zsh에서는 배열 변수를 사용합니다.

find_parameters=(\( -iname '*.aif' -o … -iname '*.doc' \))
find . "${find_parameters[@]}"

다른 쉘에는 좋은 방법이 없습니다(복잡하고 깨지기 쉬운 방법이 있지만 꼭 필요한 경우가 아니면 권장하지 않습니다). 단일 배열이 필요한 경우 위치 인수를 사용할 수 있습니다.

set \( -iname '*.aif' -o … -iname '*.doc' \)
find . "$@"

관련 정보