![システムが特定のバージョンのsystemdとglibを使用していることをシェルスクリプトでどのように確認できますか? [コピー]](https://linux33.com/image/95363/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%8C%E7%89%B9%E5%AE%9A%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AEsystemd%E3%81%A8glib%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%A7%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E7%A2%BA%E8%AA%8D%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
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
ノート
- 現代のシェルには使用されませ
$( )
ん。 [[
眼科の周りに空間を置く]]
- 正規表現の試みが最適です。grep