Como descobrir se o sistema está usando a versão específica do systemd e do glib no shell script?

Como descobrir se o sistema está usando a versão específica do systemd e do glib no shell script?

Estou tentando identificar o sistema usando systemd e glibc versão 2.17 e, em seguida, executar um conjunto específico de código. Isto é o que eu descobri, mas recebo um erro

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

CÓDIGO:

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

Responder1

Como você usa os dois [[ ]]formulários de teste, este é(ou ksh), então:

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

OBSERVAÇÃO

  • use $( )not `` no shell moderno
  • coloque espaços ao redor [[e]]
  • sua tentativa de regex é melhor escrita com um

informação relacionada