如何在 shell 腳本中尋找系統是否正在使用 systemd 和 glib 特定版本?

如何在 shell 腳本中尋找系統是否正在使用 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

由於您使用了兩個[[ ]]測試表格,所以這是(或 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

筆記

  • 在現代 shell 中不使用$( )``
  • [[在和周圍放置空間]]
  • 你的正規表示式嘗試最好用

相關內容