シェルスクリプトを使用して複数のパッケージをインストールする必要がありますが、rpm(パッケージ)名は入力ファイルにあります。
私は次の方法でやった。
私の入力ファイルはパス=/mstr/mstr_input_file.txt
私のスクリプトは次のとおりです
cat ${filename} | while read line
do
tag=$(echo "${line}"|awk -F'=' '{print $1}')
value=$(echo "${line}"|awk -F'=' '{print $2}')
if [[ "${tag}" = "packagelist" ]]; then
for pkg in $(echo "${value}" | sed "s/,/ /g")
do
sudo yum install -y "${pkg}" && sleep 5
done
fi
done
ただし、sleepコマンドを使用すると、あるパッケージのインストール中に状態を維持し、別のパッケージのインストールを開始する必要があります。
私の入力ファイルには以下が含まれています。
packagelist=mailx,nc,expect,nfs-utils,telnet,glibc,libX11,libxcb,libXcomposite,libXcursor,libXdamage,libXext,libXfixes,libXi,libXrender,libXtst,glib2,nss,nss-util,nspr,cups-libs,dbus-libs,expat,libXScrnSaver,libXrandr,alsa-lib,cairo,at-spi2-atk,gtk3,gdk-pixbuf2,ibgcc,atk,at-spi2-atk,at-spi2-core,GConf2,libXScrnSaver,libxkbcommon,libwayland-client,libwayland-cursor,gtk3,gdk-pixbuf2
ベストアンサー1
あなたはそれを使用することができます:
yum install $(awk -F ',' 'BEGIN {ORS=" "} {for(i=1;i<=NF;i++) {print $i}}' filename)
awk
このコマンドは、スペースで区切られたパッケージ名をyumへの入力として提供します。