공백으로 구분된 값 파일을 일련의 매개변수로 전달하는 방법은 무엇입니까?

공백으로 구분된 값 파일을 일련의 매개변수로 전달하는 방법은 무엇입니까?

공백이나 개행 문자로 구분되어 설치하려는 패키지 목록이 포함된 파일이 있다고 가정해 보겠습니다. 이 파일을 패키지 관리자에게 어떻게 전달합니까?

답변1

다음과 같은 명령을 시도해 보세요 xargs.

cat file | xargs ls

또는

 cat file | xargs gzip -c

답변2

파일을 배열로 읽어옵니다.

token=($(<list.txt))
yourCommand ${token[@]}

토큰은 일반적으로 쉘에서 공백으로 구분되므로 토큰이 공백을 포함하고 개행 문자로 구분된 파일 이름인 경우에는 작동하지 않습니다.

답변3

패키지 이름에 와일드카드(즉, none \[?*)가 포함되어 있지 않다고 가정하면 다음을 사용할 수 있습니다.명령 대체:

install-packages $(cat list-of-packages.txt)

패키지 이름에 문자가 포함되어 있지 않다고 가정하면 \"'다음을 사용할 수 있습니다.매개변수. 이는 패키지 목록에서 명령 입력을 리디렉션하므로 install-packages설치된 프로그램에 대화형 입력이 필요한 경우 작동하지 않을 수 있습니다.

xargs install-packages <list-of-packages.txt

관련 정보