シェルスクリプトを使用して複数のRPMパッケージをインストールし、カンマ区切りの入力ファイルからインポートするにはどうすればよいですか? [閉鎖]

シェルスクリプトを使用して複数のRPMパッケージをインストールし、カンマ区切りの入力ファイルからインポートするにはどうすればよいですか? [閉鎖]

シェルスクリプトを使用して複数のパッケージをインストールする必要がありますが、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への入力として提供します。

おすすめ記事