다음 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 . "$@"