スペースで区切られた値ファイルを一連のパラメータとして渡すにはどうすればよいですか?

スペースで区切られた値ファイルを一連のパラメータとして渡すにはどうすればよいですか?

スペースまたは改行文字で区切られ、インストールするパッケージのリストを含むファイルがあるとします。このファイルをパッケージマネージャに渡すには?

答え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

関連情報