これは見えます good :
for i in package1 package2 package3; do
Sudo apt-get install -y $i
done
しかし、パッケージがファイルにリストされている場合:
package1
package2
..
それぞれが独自の行にあります。読む最も簡単なスクリプトを探して、パフォーマンスはそれほど問題ではありません。もちろん、奇妙なパッケージは、インストール中に同意または構成するために人間の介入が必要になります。
余談ですが、インストールするパッケージの大きなリストを処理する「実際の」方法は何ですか?私は単にmonkey-see-monkey - do を探しています。
ファイルをコマンドライン引数に変換する xargs
プログラムがあります。ファイルから追加の引数を提供するコマンド(すべての引数を含む)の前にxargs
を追加し(list.txt
としましょう)、xargs
に 標準入力リダイレクト を使用したファイル。
< list.txt xargs Sudo apt-get install -y
echo
の前(または代わり)にSudo
を置くか、-y
オプションを削除することで、テストできます。
このようなもの?
# check that the filename was supplied (keeping it simple for the example)
set -o nounset
packagefile=$1
# initialize the package variable
packages=''
# read the lines of the package file
while IFS= read -r line; do
packs+=" $line"
done < $packagefile
# apt install all of the packages
apt install -y $packs