Как узнать, использует ли система определенную версию 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

Поскольку вы используете две [[ ]]тестовые формы, это(или кш), поэтому:

#!/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

ПРИМЕЧАНИЕ

  • не используйте $( )`` в современной оболочке
  • место пространства вокруг [[и]]
  • Вашу регулярку лучше записать с помощью

Связанный контент