명령줄 스위치를 사용한 Bash 와일드카드 확장

명령줄 스위치를 사용한 Bash 와일드카드 확장

양식 입력을 허용하는 명령을 사용하고 있습니다.

command [-a input_files]*

그래서 나는 command -a foo또는 에 전화할 수 있습니다 command -a foo -a bar -a baz.

이제 워크플로를 자동화하고 디렉터리의 모든 파일을 명령에 전달하려고 합니다. 이를 위해 와일드카드를 얻을 수 있는 방법이 있습니까? 알아요. 하지만 필수 접두어를 *삽입하는 것은 허용되지 않습니다 . will just do it .-acommand *command foo bar baz

이러한 작업은 bash 자체에서 가능합니까, 아니면 sed 등을 사용해야 합니까?

답변1

아마도 가장 짧은 방법은 printf를 사용하는 것입니다.

lcov $(printf -- ' -a %s' *)

그러나 일부 프로그램은 여전히 ​​실패할 수 있으므로 테스트하고 보고하십시오.

답변2

각 ( ) 파일 앞에 배열을 만든 다음 args전체 목록을 사용하여 실행합니다.-a*command

for f in *
do
  args+=(-a "$f")
done
command "${args[@]}"

관련 정보