システムが特定のバージョンのsystemdとglibを使用していることをシェルスクリプトでどのように確認できますか? [コピー]

システムが特定のバージョンのsystemdとglibを使用していることをシェルスクリプトでどのように確認できますか? [コピー]

systemdおよびglibcバージョン2.17を使用してシステムを識別し、特定のコードセットを実行しようとしています。これは私が得たものですが、エラーが発生します

 ./testing.sh: line 4: [[UNIT: command not found

パスワード:

#!/bin/sh
glib=`ldd --version | awk '/ldd/{print $NF}'`
ver=2.17
if [[`systemctl`=~-\.mount && $glib '==' $ver ]];then
echo "I have to execute certain specific stuff to glib ver 2.17"
fi

ベストアンサー1

2つのテストフォームを使用したので、[[ ]]次のようになります。(またはksh)なので、次のようになります。

#!/bin/bash

glib=$(ldd --version | awk '/ldd/{print $NF}')

if [[ $glib == 2.17 ]] && systemctl | grep -q '\.mount'; then
  echo "I have to execute certain specific stuff to glib ver 2.17"
fi

ノート

  • 現代のシェルには使用されませ$( )ん。
  • [[眼科の周りに空間を置く]]
  • 正規表現の試みが最適です。

おすすめ記事